From bb5bb4407f2578ed8d6dc3b41f6ddb8b798e560c Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Fri, 11 Mar 2016 14:41:45 +0000 Subject: tgl compile under vc2013 git-svn-id: http://svn.miranda-ng.org/main/trunk@16457 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- libs/tgl/src/auto-static-autocomplete.c | 63 + libs/tgl/src/auto-static-fetch-ds.c | 0 libs/tgl/src/auto-static-fetch.c | 106 + libs/tgl/src/auto-static-free-ds.c | 0 libs/tgl/src/auto-static-print-ds.c | 106 + libs/tgl/src/auto-static-print.c | 461 + libs/tgl/src/auto-static-skip.c | 0 libs/tgl/src/auto-static-store-ds.c | 0 libs/tgl/src/auto-static-store.c | 262 + libs/tgl/src/auto-static.c | 328 + libs/tgl/src/auto.h | 62 + libs/tgl/src/auto/auto-autocomplete.c | 29968 ++++++++++++++++++++++++++++++ libs/tgl/src/auto/auto-autocomplete.h | 865 + libs/tgl/src/auto/auto-fetch-ds.c | 11877 ++++++++++++ libs/tgl/src/auto/auto-fetch-ds.h | 716 + libs/tgl/src/auto/auto-fetch.c | 16330 ++++++++++++++++ libs/tgl/src/auto/auto-fetch.h | 717 + libs/tgl/src/auto/auto-free-ds.c | 9116 +++++++++ libs/tgl/src/auto/auto-free-ds.h | 569 + libs/tgl/src/auto/auto-print-ds.c | 16382 ++++++++++++++++ libs/tgl/src/auto/auto-print-ds.h | 719 + libs/tgl/src/auto/auto-skip.c | 11302 +++++++++++ libs/tgl/src/auto/auto-skip.h | 714 + libs/tgl/src/auto/auto-store-ds.c | 10208 ++++++++++ libs/tgl/src/auto/auto-store-ds.h | 718 + libs/tgl/src/auto/auto-store.c | 24400 ++++++++++++++++++++++++ libs/tgl/src/auto/auto-store.h | 848 + libs/tgl/src/auto/auto-types.c | 1793 ++ libs/tgl/src/auto/auto-types.h | 1589 ++ libs/tgl/src/auto/constants.h | 561 + libs/tgl/src/auto/scheme.tl | 829 + libs/tgl/src/auto/scheme.tlo | Bin 0 -> 85572 bytes libs/tgl/src/auto/scheme2.tl | 540 + libs/tgl/src/binlog.c | 1830 ++ libs/tgl/src/binlog.tl | 102 + libs/tgl/src/config.h | 162 + libs/tgl/src/encrypted_scheme.tl | 1 + libs/tgl/src/encrypted_scheme16.tl | 22 + libs/tgl/src/encrypted_scheme17.tl | 31 + libs/tgl/src/encrypted_scheme18.tl | 38 + libs/tgl/src/encrypted_scheme23.tl | 29 + libs/tgl/src/errors | 11 + libs/tgl/src/event-old.h | 48 + libs/tgl/src/generate.c | 3219 ++++ libs/tgl/src/generate.h | 173 + libs/tgl/src/mime-types.c | 4421 +++++ libs/tgl/src/mtproto-client.c | 1489 ++ libs/tgl/src/mtproto-client.h | 61 + libs/tgl/src/mtproto-common.c | 475 + libs/tgl/src/mtproto-common.h | 385 + libs/tgl/src/mtproto-utils.c | 178 + libs/tgl/src/mtproto-utils.h | 7 + libs/tgl/src/mtproto.tl | 19 + libs/tgl/src/no-preview.h | 106 + libs/tgl/src/queries-encrypted.c | 758 + libs/tgl/src/queries.c | 4477 +++++ libs/tgl/src/queries.h | 84 + libs/tgl/src/scheme.tl | 1 + libs/tgl/src/scheme12.tl | 505 + libs/tgl/src/scheme15.tl | 522 + libs/tgl/src/scheme16.tl | 504 + libs/tgl/src/scheme17.tl | 528 + libs/tgl/src/scheme18.tl | 535 + libs/tgl/src/scheme19.tl | 596 + libs/tgl/src/scheme22.tl | 596 + libs/tgl/src/scheme25.tl | 622 + libs/tgl/src/scheme28.tl | 641 + libs/tgl/src/scheme30.tl | 656 + libs/tgl/src/scheme31.tl | 668 + libs/tgl/src/structures.c | 2311 +++ libs/tgl/src/tg-mime-types.c | 112 + libs/tgl/src/tg-mime-types.h | 3 + libs/tgl/src/tgl-binlog.h | 73 + libs/tgl/src/tgl-fetch.h | 59 + libs/tgl/src/tgl-inner.h | 33 + libs/tgl/src/tgl-layout.h | 539 + libs/tgl/src/tgl-methods-in.h | 50 + libs/tgl/src/tgl-net-inner.h | 93 + libs/tgl/src/tgl-net.c | 674 + libs/tgl/src/tgl-net.h | 24 + libs/tgl/src/tgl-structures.h | 69 + libs/tgl/src/tgl-timers.c | 69 + libs/tgl/src/tgl-timers.h | 27 + libs/tgl/src/tgl.c | 149 + libs/tgl/src/tgl.h | 659 + libs/tgl/src/tools.c | 406 + libs/tgl/src/tools.h | 142 + libs/tgl/src/tree.h | 179 + libs/tgl/src/updates.c | 668 + libs/tgl/src/updates.h | 34 + libs/tgl/src/wingetopt.c | 82 + libs/tgl/src/wingetopt.h | 32 + 92 files changed, 173136 insertions(+) create mode 100644 libs/tgl/src/auto-static-autocomplete.c create mode 100644 libs/tgl/src/auto-static-fetch-ds.c create mode 100644 libs/tgl/src/auto-static-fetch.c create mode 100644 libs/tgl/src/auto-static-free-ds.c create mode 100644 libs/tgl/src/auto-static-print-ds.c create mode 100644 libs/tgl/src/auto-static-print.c create mode 100644 libs/tgl/src/auto-static-skip.c create mode 100644 libs/tgl/src/auto-static-store-ds.c create mode 100644 libs/tgl/src/auto-static-store.c create mode 100644 libs/tgl/src/auto-static.c create mode 100644 libs/tgl/src/auto.h create mode 100644 libs/tgl/src/auto/auto-autocomplete.c create mode 100644 libs/tgl/src/auto/auto-autocomplete.h create mode 100644 libs/tgl/src/auto/auto-fetch-ds.c create mode 100644 libs/tgl/src/auto/auto-fetch-ds.h create mode 100644 libs/tgl/src/auto/auto-fetch.c create mode 100644 libs/tgl/src/auto/auto-fetch.h create mode 100644 libs/tgl/src/auto/auto-free-ds.c create mode 100644 libs/tgl/src/auto/auto-free-ds.h create mode 100644 libs/tgl/src/auto/auto-print-ds.c create mode 100644 libs/tgl/src/auto/auto-print-ds.h create mode 100644 libs/tgl/src/auto/auto-skip.c create mode 100644 libs/tgl/src/auto/auto-skip.h create mode 100644 libs/tgl/src/auto/auto-store-ds.c create mode 100644 libs/tgl/src/auto/auto-store-ds.h create mode 100644 libs/tgl/src/auto/auto-store.c create mode 100644 libs/tgl/src/auto/auto-store.h create mode 100644 libs/tgl/src/auto/auto-types.c create mode 100644 libs/tgl/src/auto/auto-types.h create mode 100644 libs/tgl/src/auto/constants.h create mode 100644 libs/tgl/src/auto/scheme.tl create mode 100644 libs/tgl/src/auto/scheme.tlo create mode 100644 libs/tgl/src/auto/scheme2.tl create mode 100644 libs/tgl/src/binlog.c create mode 100644 libs/tgl/src/binlog.tl create mode 100644 libs/tgl/src/config.h create mode 100644 libs/tgl/src/encrypted_scheme.tl create mode 100644 libs/tgl/src/encrypted_scheme16.tl create mode 100644 libs/tgl/src/encrypted_scheme17.tl create mode 100644 libs/tgl/src/encrypted_scheme18.tl create mode 100644 libs/tgl/src/encrypted_scheme23.tl create mode 100644 libs/tgl/src/errors create mode 100644 libs/tgl/src/event-old.h create mode 100644 libs/tgl/src/generate.c create mode 100644 libs/tgl/src/generate.h create mode 100644 libs/tgl/src/mime-types.c create mode 100644 libs/tgl/src/mtproto-client.c create mode 100644 libs/tgl/src/mtproto-client.h create mode 100644 libs/tgl/src/mtproto-common.c create mode 100644 libs/tgl/src/mtproto-common.h create mode 100644 libs/tgl/src/mtproto-utils.c create mode 100644 libs/tgl/src/mtproto-utils.h create mode 100644 libs/tgl/src/mtproto.tl create mode 100644 libs/tgl/src/no-preview.h create mode 100644 libs/tgl/src/queries-encrypted.c create mode 100644 libs/tgl/src/queries.c create mode 100644 libs/tgl/src/queries.h create mode 100644 libs/tgl/src/scheme.tl create mode 100644 libs/tgl/src/scheme12.tl create mode 100644 libs/tgl/src/scheme15.tl create mode 100644 libs/tgl/src/scheme16.tl create mode 100644 libs/tgl/src/scheme17.tl create mode 100644 libs/tgl/src/scheme18.tl create mode 100644 libs/tgl/src/scheme19.tl create mode 100644 libs/tgl/src/scheme22.tl create mode 100644 libs/tgl/src/scheme25.tl create mode 100644 libs/tgl/src/scheme28.tl create mode 100644 libs/tgl/src/scheme30.tl create mode 100644 libs/tgl/src/scheme31.tl create mode 100644 libs/tgl/src/structures.c create mode 100644 libs/tgl/src/tg-mime-types.c create mode 100644 libs/tgl/src/tg-mime-types.h create mode 100644 libs/tgl/src/tgl-binlog.h create mode 100644 libs/tgl/src/tgl-fetch.h create mode 100644 libs/tgl/src/tgl-inner.h create mode 100644 libs/tgl/src/tgl-layout.h create mode 100644 libs/tgl/src/tgl-methods-in.h create mode 100644 libs/tgl/src/tgl-net-inner.h create mode 100644 libs/tgl/src/tgl-net.c create mode 100644 libs/tgl/src/tgl-net.h create mode 100644 libs/tgl/src/tgl-structures.h create mode 100644 libs/tgl/src/tgl-timers.c create mode 100644 libs/tgl/src/tgl-timers.h create mode 100644 libs/tgl/src/tgl.c create mode 100644 libs/tgl/src/tgl.h create mode 100644 libs/tgl/src/tools.c create mode 100644 libs/tgl/src/tools.h create mode 100644 libs/tgl/src/tree.h create mode 100644 libs/tgl/src/updates.c create mode 100644 libs/tgl/src/updates.h create mode 100644 libs/tgl/src/wingetopt.c create mode 100644 libs/tgl/src/wingetopt.h (limited to 'libs/tgl/src') diff --git a/libs/tgl/src/auto-static-autocomplete.c b/libs/tgl/src/auto-static-autocomplete.c new file mode 100644 index 0000000000..43ec4cc02e --- /dev/null +++ b/libs/tgl/src/auto-static-autocomplete.c @@ -0,0 +1,63 @@ +#define IN_AUTOCOMPLETE_H +#include "auto-static-store.c" +#undef IN_AUTOCOMPLETE_H + +static int autocomplete_mode; +static char *autocomplete_string; +static int (*autocomplete_fun)(const char *, int, int, char **); + +static void set_autocomplete_string (const char *s) { + if (autocomplete_string) { free (autocomplete_string); } + autocomplete_string = strdup (s); + assert (autocomplete_string); + autocomplete_mode = 1; +} + +static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) { + autocomplete_fun = f; + autocomplete_mode = 2; +} + +#define MAX_FVARS 100 +static struct paramed_type *fvars[MAX_FVARS]; +static int fvars_pos; + +static void add_var_to_be_freed (struct paramed_type *P) { + assert (fvars_pos < MAX_FVARS); + fvars[fvars_pos ++] = P; +} + +static void free_vars_to_be_freed (void) { + int i; + for (i = 0; i < fvars_pos; i++) { + tgl_paramed_type_free (fvars[i]); + } + fvars_pos = 0; +} + +int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len) { + if (index == -1) { + buffer_pos = data; + buffer_end = data + data_len; + autocomplete_mode = 0; + local_next_token (); + struct paramed_type *P = autocomplete_function_any (); + free_vars_to_be_freed (); + if (P) { tgl_paramed_type_free (P); } + } + if (autocomplete_mode == 0) { return -1; } + int len = strlen (text); + if (autocomplete_mode == 1) { + if (index >= 0) { return -1; } + index = 0; + if (!strncmp (text, autocomplete_string, len)) { + *R = strdup (autocomplete_string); + assert (*R); + return index; + } else { + return -1; + } + } else { + return autocomplete_fun (text, len, index, R); + } +} diff --git a/libs/tgl/src/auto-static-fetch-ds.c b/libs/tgl/src/auto-static-fetch-ds.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/tgl/src/auto-static-fetch.c b/libs/tgl/src/auto-static-fetch.c new file mode 100644 index 0000000000..4d4e47cc5c --- /dev/null +++ b/libs/tgl/src/auto-static-fetch.c @@ -0,0 +1,106 @@ +static int multiline_output = 1; +static int multiline_offset; +static int multiline_offset_size = 2; + +static int disable_field_names; + +#define OUT_BUF_SIZE (1 << 25) +static char out_buf[OUT_BUF_SIZE]; +static int out_buf_pos; + +#define eprintf(...) \ + do { \ + out_buf_pos += snprintf (out_buf + out_buf_pos, OUT_BUF_SIZE - out_buf_pos, __VA_ARGS__);\ + assert (out_buf_pos < OUT_BUF_SIZE);\ + } while (0)\ + +static int valid_utf8_char (const char *str) { + unsigned char c = (unsigned char) *str; + int n = 0; + + if ((c & 0x80) == 0x00) { + n = 0; + } else if ((c & 0xe0) == 0xc0) { + n = 1; + } else if ((c & 0xf0) == 0xe0) { + n = 2; + } else if ((c & 0xf8) == 0xf0) { + n = 3; + } else if ((c & 0xfc) == 0xf8) { + n = 4; + } else if ((c & 0xfe) == 0xfc) { + n = 5; + } else { + return -1; + } + + int i; + for (i = 0; i < n; i ++) { + if ((((unsigned char)(str[i + 1])) & 0xc0) != 0x80) { + return -1; + } + } + return n + 1; +} + +static void print_escaped_string (const char *str, int len) { + eprintf ("\""); + const char *end = str + len; + while (str < end) { + int n = valid_utf8_char (str); + if (n < 0) { + eprintf ("\\x%02x", (int)(unsigned char)*str); + str ++; + } else if (n >= 2) { + int i; + for (i = 0; i < n; i++) { + eprintf ("%c", *(str ++)); + } + } else if (((unsigned char)*str) >= ' ' && *str != '"' && *str != '\\') { + eprintf ("%c", *str); + str ++; + } else { + switch (*str) { + case '\n': + eprintf("\\n"); + break; + case '\r': + eprintf("\\r"); + break; + case '\t': + eprintf("\\t"); + break; + case '\b': + eprintf("\\b"); + break; + case '\a': + eprintf("\\a"); + break; + case '\\': + eprintf ("\\\\"); + break; + case '"': + eprintf ("\\\""); + break; + default: + eprintf ("\\x%02x", (int)(unsigned char)*str); + break; + } + str ++; + } + } + eprintf ("\""); +} + +static void print_offset (void) { + int i; + for (i = 0; i < multiline_offset; i++) { + eprintf (" "); + } +} + +char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T) { + out_buf_pos = 0; + if (fetch_type_any (T) < 0) { return 0; } + return out_buf; +} diff --git a/libs/tgl/src/auto-static-free-ds.c b/libs/tgl/src/auto-static-free-ds.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/tgl/src/auto-static-print-ds.c b/libs/tgl/src/auto-static-print-ds.c new file mode 100644 index 0000000000..cfec470fcc --- /dev/null +++ b/libs/tgl/src/auto-static-print-ds.c @@ -0,0 +1,106 @@ +static int multiline_output = 1; +static int multiline_offset; +static int multiline_offset_size = 2; + +static int disable_field_names; + +#define OUT_BUF_SIZE (1 << 25) +static char out_buf[OUT_BUF_SIZE]; +static int out_buf_pos; + +#define eprintf(...) \ + do { \ + out_buf_pos += snprintf (out_buf + out_buf_pos, OUT_BUF_SIZE - out_buf_pos, __VA_ARGS__);\ + assert (out_buf_pos < OUT_BUF_SIZE);\ + } while (0)\ + +static int valid_utf8_char (const char *str) { + unsigned char c = (unsigned char) *str; + int n = 0; + + if ((c & 0x80) == 0x00) { + n = 0; + } else if ((c & 0xe0) == 0xc0) { + n = 1; + } else if ((c & 0xf0) == 0xe0) { + n = 2; + } else if ((c & 0xf8) == 0xf0) { + n = 3; + } else if ((c & 0xfc) == 0xf8) { + n = 4; + } else if ((c & 0xfe) == 0xfc) { + n = 5; + } else { + return -1; + } + + int i; + for (i = 0; i < n; i ++) { + if ((((unsigned char)(str[i + 1])) & 0xc0) != 0x80) { + return -1; + } + } + return n + 1; +} + +static void print_escaped_string (const char *str, int len) { + eprintf ("\""); + const char *end = str + len; + while (str < end) { + int n = valid_utf8_char (str); + if (n < 0) { + eprintf ("\\x%02x", (int)(unsigned char)*str); + str ++; + } else if (n >= 2) { + int i; + for (i = 0; i < n; i++) { + eprintf ("%c", *(str ++)); + } + } else if (((unsigned char)*str) >= ' ' && *str != '"' && *str != '\\') { + eprintf ("%c", *str); + str ++; + } else { + switch (*str) { + case '\n': + eprintf("\\n"); + break; + case '\r': + eprintf("\\r"); + break; + case '\t': + eprintf("\\t"); + break; + case '\b': + eprintf("\\b"); + break; + case '\a': + eprintf("\\a"); + break; + case '\\': + eprintf ("\\\\"); + break; + case '"': + eprintf ("\\\""); + break; + default: + eprintf ("\\x%02x", (int)(unsigned char)*str); + break; + } + str ++; + } + } + eprintf ("\""); +} + +static void print_offset (void) { + int i; + for (i = 0; i < multiline_offset; i++) { + eprintf (" "); + } +} + +char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T) { + out_buf_pos = 0; + if (print_ds_type_any (DS, T) < 0) { return 0; } + return out_buf; +} diff --git a/libs/tgl/src/auto-static-print.c b/libs/tgl/src/auto-static-print.c new file mode 100644 index 0000000000..3c4e810fad --- /dev/null +++ b/libs/tgl/src/auto-static-print.c @@ -0,0 +1,461 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ + +#include +#include +#include + +static int cur_token_len; +static char *cur_token; +static int cur_token_real_len; +static int cur_token_quoted; +static int multiline_output = 1; +static int multiline_offset; +static int multiline_offset_size = 2; + +static int *in_ptr, *in_end; + +static inline int fetch_int (void) { + return *(in_ptr ++); +} + +static inline int fetch_long (void) { + long long r = *(long long *)in_ptr; + in_ptr += 2; + return r; +} + +static inline int fetch_long (void) { + long long r = *(long long *)in_ptr; + in_ptr += 2; + return r; +} + +static inline void out_int (int a) {} +static inline void out_double (double a) {} +static inline void out_string (char *s, int l) {} +static inline void out_long (long long a) {} + +static int disable_field_names; + +#define expect_token(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + +#define expect_token_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + + +static int autocomplete_mode; +static char *autocomplete_string; +static int (*autocomplete_fun)(const char *, int, int, char **); + +static void set_autocomplete_string (const char *s) { + if (autocomplete_string) { free (autocomplete_string); } + autocomplete_string = strdup (s); + assert (autocomplete_string); + autocomplete_mode = 1; +} + +static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) { + autocomplete_fun = f; + autocomplete_mode = 2; +} + +static int is_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtoll (cur_token, &p, 10)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +static long long get_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + long long val = strtoll (cur_token, &p, 0); + cur_token[cur_token_len] = c; + + return val; +} + +static int is_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtod (cur_token, &p)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +static double get_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + double val = strtod (cur_token, &p); + cur_token[cur_token_len] = c; + + return val; +} + +static struct paramed_type *paramed_type_dup (struct paramed_type *P) { + if (ODDP (P)) { return P; } + struct paramed_type *R = malloc (sizeof (*R)); + assert (R); + R->type = malloc (sizeof (*R->type)); + assert (R->type); + memcpy (R->type, P->type, sizeof (*P->type)); + R->type->id = strdup (P->type->id); + assert (R->type->id); + + if (P->type->params_num) { + R->params = malloc (sizeof (void *) * P->type->params_num); + assert (R->params); + int i; + for (i = 0; i < P->type->params_num; i++) { + R->params[i] = paramed_type_dup (P->params[i]); + } + } + return R; +} + +void tgl_paramed_type_free (struct paramed_type *P) { + if (ODDP (P)) { return; } + if (P->type->params_num) { + int i; + for (i = 0; i < P->type->params_num; i++) { + tgl_paramed_type_free (P->params[i]); + } + free (P->params); + } + free (P->type->id); + free (P->type); + free (P); +} + +static char *buffer_pos, *buffer_end; + +static int is_wspc (char c) { + return c <= 32 && c > 0; +} + +static void skip_wspc (void) { + while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) { + buffer_pos ++; + } +} + +static int is_letter (char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-'; +} + + +static char exp_buffer[1 << 25];; +static int exp_buffer_pos; + +static inline int is_hex (char c) { + return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f'); +} + +static inline int hex2dec (char c) { + if (c >= '0' && c <= '9') { return c - '0'; } + else { return c - 'a' + 10; } +} + +static void expand_backslashed (char *s, int len) { + int backslashed = 0; + exp_buffer_pos = 0; + int i = 0; + while (i < len) { + assert (i + 3 <= (1 << 25)); + if (backslashed) { + backslashed = 0; + switch (s[i ++]) { + case 'n': + exp_buffer[exp_buffer_pos ++] = '\n'; + break; + case 'r': + exp_buffer[exp_buffer_pos ++] = '\r'; + break; + case 't': + exp_buffer[exp_buffer_pos ++] = '\t'; + break; + case 'b': + exp_buffer[exp_buffer_pos ++] = '\b'; + break; + case 'a': + exp_buffer[exp_buffer_pos ++] = '\a'; + break; + case '\\': + exp_buffer[exp_buffer_pos ++] = '\\'; + break; + case 'x': + if (i + 2 > len || !is_hex (s[i]) || !is_hex (s[i + 1])) { + exp_buffer_pos = -1; + return; + } + exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec (s[i + 1]); + i += 2; + break; + default: + break; + } + } else { + if (s[i] == '\\') { + backslashed = 1; + i ++; + } else { + exp_buffer[exp_buffer_pos ++] = s[i ++]; + } + } + } +} + +static void local_next_token (void) { + skip_wspc (); + cur_token_quoted = 0; + if (buffer_pos >= buffer_end) { + cur_token_len = -3; + cur_token_real_len = 0; + return; + } + char c = *buffer_pos; + if (is_letter (c)) { + cur_token = buffer_pos; + while (buffer_pos < buffer_end && is_letter (*buffer_pos)) { + buffer_pos ++; + } + if (buffer_pos < buffer_end) { + cur_token_len = buffer_pos - cur_token; + } else { + cur_token_real_len = buffer_pos - cur_token; + cur_token_len = -3; + } + return; + } else if (c == '"') { + cur_token_quoted = 1; + cur_token = buffer_pos ++; + int backslashed = 0; + while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) { + if (*buffer_pos == '\\') { + backslashed ^= 1; + } else { + backslashed = 0; + } + buffer_pos ++; + } + if (*buffer_pos == '"') { + buffer_pos ++; + expand_backslashed (cur_token + 1, buffer_pos - cur_token - 2); + if (exp_buffer_pos < 0) { + cur_token_len = -2; + } else { + cur_token_len = exp_buffer_pos; + cur_token = exp_buffer; + } + } else { + cur_token_len = -2; + } + return; + } else { + if (c) { + cur_token = buffer_pos ++; + cur_token_len = 1; + } else { + cur_token_len = -3; + cur_token_real_len = 0; + } + } +} + +#define MAX_FVARS 100 +static struct paramed_type *fvars[MAX_FVARS]; +static int fvars_pos; + +static void add_var_to_be_freed (struct paramed_type *P) { + assert (fvars_pos < MAX_FVARS); + fvars[fvars_pos ++] = P; +} + +static void free_vars_to_be_freed (void) { + int i; + for (i = 0; i < fvars_pos; i++) { + tgl_paramed_type_free (fvars[i]); + } + fvars_pos = 0; +} + +int tglf_extf_autocomplete (const char *text, int text_len, int index, char **R, char *data, int data_len) { + if (index == -1) { + buffer_pos = data; + buffer_end = data + data_len; + autocomplete_mode = 0; + local_next_token (); + struct paramed_type *P = autocomplete_function_any (); + free_vars_to_be_freed (); + if (P) { tgl_paramed_type_free (P); } + } + if (autocomplete_mode == 0) { return -1; } + int len = strlen (text); + if (autocomplete_mode == 1) { + if (index >= 0) { return -1; } + index = 0; + if (!strncmp (text, autocomplete_string, len)) { + *R = strdup (autocomplete_string); + assert (*R); + return index; + } else { + return -1; + } + } else { + return autocomplete_fun (text, len, index, R); + } +} + +struct paramed_type *tglf_extf_store (const char *data, int data_len) { + buffer_pos = (char *)data; + buffer_end = (char *)(data + data_len); + local_next_token (); + return store_function_any (); +} + +#define OUT_BUF_SIZE (1 << 25) +static char out_buf[OUT_BUF_SIZE]; +static int out_buf_pos; + +#define eprintf(...) \ + do { \ + out_buf_pos += snprintf (out_buf + out_buf_pos, OUT_BUF_SIZE - out_buf_pos, __VA_ARGS__);\ + assert (out_buf_pos < OUT_BUF_SIZE);\ + } while (0)\ + +static int valid_utf8_char (const char *str) { + unsigned char c = (unsigned char) *str; + int n = 0; + + if ((c & 0x80) == 0x00) { + n = 0; + } else if ((c & 0xe0) == 0xc0) { + n = 1; + } else if ((c & 0xf0) == 0xe0) { + n = 2; + } else if ((c & 0xf8) == 0xf0) { + n = 3; + } else if ((c & 0xfc) == 0xf8) { + n = 4; + } else if ((c & 0xfe) == 0xfc) { + n = 5; + } else { + return -1; + } + + int i; + for (i = 0; i < n; i ++) { + if ((((unsigned char)(str[i + 1])) & 0xc0) != 0x80) { + return -1; + } + } + return n + 1; +} + +static void print_escaped_string (const char *str, int len) { + eprintf ("\""); + const char *end = str + len; + while (str < end) { + int n = valid_utf8_char (str); + if (n < 0) { + eprintf ("\\x%02x", (int)(unsigned char)*str); + str ++; + } else if (n >= 2) { + int i; + for (i = 0; i < n; i++) { + eprintf ("%c", *(str ++)); + } + } else if (((unsigned char)*str) >= ' ' && *str != '"' && *str != '\\') { + eprintf ("%c", *str); + str ++; + } else { + switch (*str) { + case '\n': + eprintf("\\n"); + break; + case '\r': + eprintf("\\r"); + break; + case '\t': + eprintf("\\t"); + break; + case '\b': + eprintf("\\b"); + break; + case '\a': + eprintf("\\a"); + break; + case '\\': + eprintf ("\\\\"); + break; + case '"': + eprintf ("\\\""); + break; + default: + eprintf ("\\x%02x", (int)(unsigned char)*str); + break; + } + str ++; + } + } + eprintf ("\""); +} + +static void print_offset (void) { + int i; + for (i = 0; i < multiline_offset; i++) { + eprintf (" "); + } +} + +char *tglf_extf_fetch (struct paramed_type *T) { + out_buf_pos = 0; + fetch_type_any (T); + return out_buf; +} diff --git a/libs/tgl/src/auto-static-skip.c b/libs/tgl/src/auto-static-skip.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/tgl/src/auto-static-store-ds.c b/libs/tgl/src/auto-static-store-ds.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/tgl/src/auto-static-store.c b/libs/tgl/src/auto-static-store.c new file mode 100644 index 0000000000..bff0cb5f84 --- /dev/null +++ b/libs/tgl/src/auto-static-store.c @@ -0,0 +1,262 @@ +static int cur_token_len; +static char *cur_token; +static int cur_token_real_len; +static int cur_token_quoted; + +#define expect_token(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + +#define expect_token_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + +static int is_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtoll (cur_token, &p, 10)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +static long long get_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + long long val = strtoll (cur_token, &p, 0); + cur_token[cur_token_len] = c; + + return val; +} + +static int is_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtod (cur_token, &p)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +#ifndef IN_AUTOCOMPLETE_H +static double get_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + double val = strtod (cur_token, &p); + cur_token[cur_token_len] = c; + + return val; +} +#endif + +static char *buffer_pos, *buffer_end; + +static int is_wspc (char c) { + return c <= 32 && c > 0; +} + +static void skip_wspc (void) { + while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) { + buffer_pos ++; + } +} + +static int is_letter (char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-'; +} + + +static char exp_buffer[1 << 25];; +static int exp_buffer_pos; + +static inline int is_hex (char c) { + return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f'); +} + +static inline int hex2dec (char c) { + if (c >= '0' && c <= '9') { return c - '0'; } + else { return c - 'a' + 10; } +} + +static void expand_backslashed (char *s, int len) { + int backslashed = 0; + exp_buffer_pos = 0; + int i = 0; + while (i < len) { + assert (i + 3 <= (1 << 25)); + if (backslashed) { + backslashed = 0; + switch (s[i ++]) { + case 'n': + exp_buffer[exp_buffer_pos ++] = '\n'; + break; + case 'r': + exp_buffer[exp_buffer_pos ++] = '\r'; + break; + case 't': + exp_buffer[exp_buffer_pos ++] = '\t'; + break; + case 'b': + exp_buffer[exp_buffer_pos ++] = '\b'; + break; + case 'a': + exp_buffer[exp_buffer_pos ++] = '\a'; + break; + case '\\': + exp_buffer[exp_buffer_pos ++] = '\\'; + break; + case 'x': + if (i + 2 > len || !is_hex (s[i]) || !is_hex (s[i + 1])) { + exp_buffer_pos = -1; + return; + } + exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec (s[i + 1]); + i += 2; + break; + default: + break; + } + } else { + if (s[i] == '\\') { + backslashed = 1; + i ++; + } else { + exp_buffer[exp_buffer_pos ++] = s[i ++]; + } + } + } +} + +static void local_next_token (void) { + skip_wspc (); + cur_token_quoted = 0; + if (buffer_pos >= buffer_end) { + cur_token_len = -3; + cur_token_real_len = 0; + return; + } + char c = *buffer_pos; + if (is_letter (c)) { + cur_token = buffer_pos; + while (buffer_pos < buffer_end && is_letter (*buffer_pos)) { + buffer_pos ++; + } + if (buffer_pos < buffer_end) { + cur_token_len = buffer_pos - cur_token; + } else { + cur_token_real_len = buffer_pos - cur_token; + cur_token_len = -3; + } + return; + } else if (c == '"') { + cur_token_quoted = 1; + cur_token = buffer_pos ++; + int backslashed = 0; + while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) { + if (*buffer_pos == '\\') { + backslashed ^= 1; + } else { + backslashed = 0; + } + buffer_pos ++; + } + if (*buffer_pos == '"') { + buffer_pos ++; + expand_backslashed (cur_token + 1, buffer_pos - cur_token - 2); + if (exp_buffer_pos < 0) { + cur_token_len = -2; + } else { + cur_token_len = exp_buffer_pos; + cur_token = exp_buffer; + } + } else { + cur_token_len = -2; + } + return; + } else { + if (c) { + cur_token = buffer_pos ++; + cur_token_len = 1; + } else { + cur_token_len = -3; + cur_token_real_len = 0; + } + } +} + +static struct paramed_type *paramed_type_dup (struct paramed_type *P) { + if (ODDP (P)) { return P; } + struct paramed_type *R = malloc (sizeof (*R)); + assert (R); + R->type = malloc (sizeof (*R->type)); + assert (R->type); + memcpy (R->type, P->type, sizeof (*P->type)); + R->type->id = strdup (P->type->id); + assert (R->type->id); + + if (P->type->params_num) { + R->params = malloc (sizeof (void *) * P->type->params_num); + assert (R->params); + int i; + for (i = 0; i < P->type->params_num; i++) { + R->params[i] = paramed_type_dup (P->params[i]); + } + } + return R; +} + +#ifndef IN_AUTOCOMPLETE_H +void tgl_paramed_type_free (struct paramed_type *P) { + if (ODDP (P)) { return; } + if (P->type->params_num) { + int i; + for (i = 0; i < P->type->params_num; i++) { + tgl_paramed_type_free (P->params[i]); + } + free (P->params); + } + free (P->type->id); + free (P->type); + free (P); +} +#else +void tgl_paramed_type_free (struct paramed_type *P); +#endif + +#ifndef IN_AUTOCOMPLETE_H +struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len) { + buffer_pos = (char *)data; + buffer_end = (char *)(data + data_len); + local_next_token (); + return store_function_any (); +} + +int tglf_store_type (struct tgl_state *TLS, const char *data, int data_len, struct paramed_type *P) { + buffer_pos = (char *)data; + buffer_end = (char *)(data + data_len); + local_next_token (); + return store_type_any (P); +} +#endif diff --git a/libs/tgl/src/auto-static.c b/libs/tgl/src/auto-static.c new file mode 100644 index 0000000000..89a0a176bf --- /dev/null +++ b/libs/tgl/src/auto-static.c @@ -0,0 +1,328 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ + +#include "mtproto-common.h" +#include "config.h" +#include + +#ifndef DISABLE_EXTF +static int cur_token_len; +static char *cur_token; +static int cur_token_real_len; +static int cur_token_quoted; + +#define expect_token(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr(token,len) \ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + +#define expect_token_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \ + local_next_token (); + +#define expect_token_ptr_autocomplete(token,len) \ + if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\ + if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \ + local_next_token (); + + +static int autocomplete_mode; +static char *autocomplete_string; +static int (*autocomplete_fun)(const char *, int, int, char **); + +static void set_autocomplete_string (const char *s) { + if (autocomplete_string) { free (autocomplete_string); } + autocomplete_string = strdup (s); + assert (autocomplete_string); + autocomplete_mode = 1; +} + +static void set_autocomplete_type (int (*f)(const char *, int, int, char **)) { + autocomplete_fun = f; + autocomplete_mode = 2; +} + +static int is_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtoll (cur_token, &p, 10)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +static long long get_int (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + long long val = strtoll (cur_token, &p, 0); + cur_token[cur_token_len] = c; + + return val; +} + +static int is_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + if (strtod (cur_token, &p)) {} + cur_token[cur_token_len] = c; + + return p == cur_token + cur_token_len; +} + +static double get_double (void) { + if (cur_token_len <= 0) { return 0; } + char c = cur_token[cur_token_len]; + cur_token[cur_token_len] = 0; + char *p = 0; + + double val = strtod (cur_token, &p); + cur_token[cur_token_len] = c; + + return val; +} + +static struct paramed_type *paramed_type_dup (struct paramed_type *P) { + if (ODDP (P)) { return P; } + struct paramed_type *R = malloc (sizeof (*R)); + assert (R); + R->type = malloc (sizeof (*R->type)); + assert (R->type); + memcpy (R->type, P->type, sizeof (*P->type)); + R->type->id = strdup (P->type->id); + assert (R->type->id); + + if (P->type->params_num) { + R->params = malloc (sizeof (void *) * P->type->params_num); + assert (R->params); + int i; + for (i = 0; i < P->type->params_num; i++) { + R->params[i] = paramed_type_dup (P->params[i]); + } + } + return R; +} + +void tgl_paramed_type_free (struct paramed_type *P) { + if (ODDP (P)) { return; } + if (P->type->params_num) { + int i; + for (i = 0; i < P->type->params_num; i++) { + tgl_paramed_type_free (P->params[i]); + } + free (P->params); + } + free (P->type->id); + free (P->type); + free (P); +} + +static char *buffer_pos, *buffer_end; + +static int is_wspc (char c) { + return c <= 32 && c > 0; +} + +static void skip_wspc (void) { + while (buffer_pos < buffer_end && is_wspc (*buffer_pos)) { + buffer_pos ++; + } +} + +static int is_letter (char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-'; +} + + +static char exp_buffer[1 << 25];; +static int exp_buffer_pos; + +static inline int is_hex (char c) { + return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f'); +} + +static inline int hex2dec (char c) { + if (c >= '0' && c <= '9') { return c - '0'; } + else { return c - 'a' + 10; } +} + +static void expand_backslashed (char *s, int len) { + int backslashed = 0; + exp_buffer_pos = 0; + int i = 0; + while (i < len) { + assert (i + 3 <= (1 << 25)); + if (backslashed) { + backslashed = 0; + switch (s[i ++]) { + case 'n': + exp_buffer[exp_buffer_pos ++] = '\n'; + break; + case 'r': + exp_buffer[exp_buffer_pos ++] = '\r'; + break; + case 't': + exp_buffer[exp_buffer_pos ++] = '\t'; + break; + case 'b': + exp_buffer[exp_buffer_pos ++] = '\b'; + break; + case 'a': + exp_buffer[exp_buffer_pos ++] = '\a'; + break; + case '\\': + exp_buffer[exp_buffer_pos ++] = '\\'; + break; + case 'x': + if (i + 2 > len || !is_hex (s[i]) || !is_hex (s[i + 1])) { + exp_buffer_pos = -1; + return; + } + exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec (s[i + 1]); + i += 2; + break; + default: + break; + } + } else { + if (s[i] == '\\') { + backslashed = 1; + i ++; + } else { + exp_buffer[exp_buffer_pos ++] = s[i ++]; + } + } + } +} + +static void local_next_token (void) { + skip_wspc (); + cur_token_quoted = 0; + if (buffer_pos >= buffer_end) { + cur_token_len = -3; + cur_token_real_len = 0; + return; + } + char c = *buffer_pos; + if (is_letter (c)) { + cur_token = buffer_pos; + while (buffer_pos < buffer_end && is_letter (*buffer_pos)) { + buffer_pos ++; + } + if (buffer_pos < buffer_end) { + cur_token_len = buffer_pos - cur_token; + } else { + cur_token_real_len = buffer_pos - cur_token; + cur_token_len = -3; + } + return; + } else if (c == '"') { + cur_token_quoted = 1; + cur_token = buffer_pos ++; + int backslashed = 0; + while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) { + if (*buffer_pos == '\\') { + backslashed ^= 1; + } else { + backslashed = 0; + } + buffer_pos ++; + } + if (*buffer_pos == '"') { + buffer_pos ++; + expand_backslashed (cur_token + 1, buffer_pos - cur_token - 2); + if (exp_buffer_pos < 0) { + cur_token_len = -2; + } else { + cur_token_len = exp_buffer_pos; + cur_token = exp_buffer; + } + } else { + cur_token_len = -2; + } + return; + } else { + if (c) { + cur_token = buffer_pos ++; + cur_token_len = 1; + } else { + cur_token_len = -3; + cur_token_real_len = 0; + } + } +} + +#define MAX_FVARS 100 +static struct paramed_type *fvars[MAX_FVARS]; +static int fvars_pos; + +static void add_var_to_be_freed (struct paramed_type *P) { + assert (fvars_pos < MAX_FVARS); + fvars[fvars_pos ++] = P; +} + +static void free_vars_to_be_freed (void) { + int i; + for (i = 0; i < fvars_pos; i++) { + tgl_paramed_type_free (fvars[i]); + } + fvars_pos = 0; +} + +int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len) { + if (index == -1) { + buffer_pos = data; + buffer_end = data + data_len; + autocomplete_mode = 0; + local_next_token (); + struct paramed_type *P = autocomplete_function_any (); + free_vars_to_be_freed (); + if (P) { tgl_paramed_type_free (P); } + } + if (autocomplete_mode == 0) { return -1; } + int len = strlen (text); + if (autocomplete_mode == 1) { + if (index >= 0) { return -1; } + index = 0; + if (!strncmp (text, autocomplete_string, len)) { + *R = strdup (autocomplete_string); + assert (*R); + return index; + } else { + return -1; + } + } else { + return autocomplete_fun (text, len, index, R); + } +} + +#endif diff --git a/libs/tgl/src/auto.h b/libs/tgl/src/auto.h new file mode 100644 index 0000000000..b2e216aff3 --- /dev/null +++ b/libs/tgl/src/auto.h @@ -0,0 +1,62 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ +#ifndef __AUTO_H__ +#define __AUTO_H__ + +#include "tools.h" + +struct tl_type_descr { + unsigned name; + char *id; + int params_num; + long long params_types; +}; + +struct paramed_type { + struct tl_type_descr *type; + struct paramed_type **params; +}; + +#define NAME_ARRAY 0x89932ad9 + +#define TYPE_TO_PARAM(NAME) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=0}) +#define TYPE_TO_PARAM_1(NAME,PARAM1) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=(struct paramed_type *[1]){PARAM1}}) +#define ODDP(x) (((long)(x)) & 1) +#define EVENP(x) (!ODDP(x)) +#define INT2PTR(x) (void *)(long)(((long)x) * 2 + 1) +#define PTR2INT(x) ((((long)x) - 1) / 2) + +static inline void *memdup (const void *d, int len) { + assert (d || !len); + if (!d) { return NULL; } + void *r = talloc (len); + memcpy (r, d, len); + return r; +} + +#define DS_LVAL(x) ((x) ? *(x) : 0) +#define DS_STR(x) ((x) ? (x)->data : NULL), ((x) ? (x)->len : 0) +#define DS_RSTR(x) ((x) ? (x)->len : 0), ((x) ? (x)->data : NULL) +#define DS_STR_DUP(x) memdup(((x) ? (x)->data : NULL), ((x) ? (x)->len + 1: 0)) +#define DS_BVAL(x) ((x) && ((x)->magic == CODE_bool_true)) + +void tgl_paramed_type_free (struct paramed_type *P); + +#endif diff --git a/libs/tgl/src/auto/auto-autocomplete.c b/libs/tgl/src/auto/auto-autocomplete.c new file mode 100644 index 0000000000..e0f5d4a990 --- /dev/null +++ b/libs/tgl/src/auto/auto-autocomplete.c @@ -0,0 +1,29968 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "..\mtproto-common.h" +#include "auto-autocomplete.h" +#include "..\auto-static-autocomplete.c" +#else +#include "auto.h" +#include "mtproto-common.h" +#include "auto/auto-autocomplete.h" +#include "auto-static-autocomplete.c" +#endif +#include +int autocomplete_constructor_account_days_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) { + set_autocomplete_string ("device_model"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "platform", cur_token_real_len)) { + set_autocomplete_string ("platform"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "platform", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) { + set_autocomplete_string ("system_version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) { + set_autocomplete_string ("api_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "app_name", cur_token_real_len)) { + set_autocomplete_string ("app_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "app_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) { + set_autocomplete_string ("app_version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "date_created", cur_token_real_len)) { + set_autocomplete_string ("date_created"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "date_created", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "date_active", cur_token_real_len)) { + set_autocomplete_string ("date_active"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "date_active", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_real_len)) { + set_autocomplete_string ("ip"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field11) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_real_len)) { + set_autocomplete_string ("country"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "country", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field12) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "region", cur_token_real_len)) { + set_autocomplete_string ("region"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "region", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field13) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_bool_false (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int autocomplete_constructor_bool_true (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int autocomplete_constructor_bot_command (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_real_len)) { + set_autocomplete_string ("command"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "command", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) { + set_autocomplete_string ("description"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_bot_command_old (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_real_len)) { + set_autocomplete_string ("command"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "command", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "params", cur_token_real_len)) { + set_autocomplete_string ("params"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "params", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) { + set_autocomplete_string ("description"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_bot_info_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + return 0; +} +int autocomplete_constructor_bot_info (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "share_text", cur_token_real_len)) { + set_autocomplete_string ("share_text"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "share_text", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) { + set_autocomplete_string ("description"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "commands", cur_token_real_len)) { + set_autocomplete_string ("commands"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "commands", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_bytes (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_photo (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_real_len)) { + set_autocomplete_string ("participants_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "participants_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "left", cur_token_real_len)) { + set_autocomplete_string ("left"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "left", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_real_len)) { + set_autocomplete_string ("venue"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "venue", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) { + set_autocomplete_string ("geo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_point (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_photo (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_real_len)) { + set_autocomplete_string ("participants_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "participants_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "checked_in", cur_token_real_len)) { + set_autocomplete_string ("checked_in"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "checked_in", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field10) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) { + set_autocomplete_string ("participants"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_participants (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_real_len)) { + set_autocomplete_string ("chat_photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "chat_photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) { + set_autocomplete_string ("notify_settings"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer_notify_settings (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "exported_invite", cur_token_real_len)) { + set_autocomplete_string ("exported_invite"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "exported_invite", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_exported_chat_invite (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) { + set_autocomplete_string ("bot_info"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_invite_already (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_real_len)) { + set_autocomplete_string ("chat"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_invite (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "distance", cur_token_real_len)) { + set_autocomplete_string ("distance"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "distance", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) { + set_autocomplete_string ("inviter_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_participants_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) { + set_autocomplete_string ("admin_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) { + set_autocomplete_string ("participants"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + return 0; +} +int autocomplete_constructor_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) { + set_autocomplete_string ("photo_small"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) { + set_autocomplete_string ("photo_big"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_client_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "retry_id", cur_token_real_len)) { + set_autocomplete_string ("retry_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "retry_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) { + set_autocomplete_string ("g_b"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_real_len)) { + set_autocomplete_string ("expires"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "expires", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "test_mode", cur_token_real_len)) { + set_autocomplete_string ("test_mode"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "test_mode", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_real_len)) { + set_autocomplete_string ("this_dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "this_dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_real_len)) { + set_autocomplete_string ("dc_options"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "dc_options", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "chat_size_max", cur_token_real_len)) { + set_autocomplete_string ("chat_size_max"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "chat_size_max", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "broadcast_size_max", cur_token_real_len)) { + set_autocomplete_string ("broadcast_size_max"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "broadcast_size_max", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 19 && !cur_token_quoted && !memcmp (cur_token, "forwarded_count_max", cur_token_real_len)) { + set_autocomplete_string ("forwarded_count_max"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 19 && !memcmp (cur_token, "forwarded_count_max", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "online_update_period_ms", cur_token_real_len)) { + set_autocomplete_string ("online_update_period_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "online_update_period_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "offline_blur_timeout_ms", cur_token_real_len)) { + set_autocomplete_string ("offline_blur_timeout_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "offline_blur_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "offline_idle_timeout_ms", cur_token_real_len)) { + set_autocomplete_string ("offline_idle_timeout_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "offline_idle_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "online_cloud_timeout_ms", cur_token_real_len)) { + set_autocomplete_string ("online_cloud_timeout_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "online_cloud_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 21 && !cur_token_quoted && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_real_len)) { + set_autocomplete_string ("notify_cloud_delay_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 21 && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field13) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 23 && !cur_token_quoted && !memcmp (cur_token, "notify_default_delay_ms", cur_token_real_len)) { + set_autocomplete_string ("notify_default_delay_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 23 && !memcmp (cur_token, "notify_default_delay_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field14) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "chat_big_size", cur_token_real_len)) { + set_autocomplete_string ("chat_big_size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "chat_big_size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field15) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 19 && !cur_token_quoted && !memcmp (cur_token, "push_chat_period_ms", cur_token_real_len)) { + set_autocomplete_string ("push_chat_period_ms"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 19 && !memcmp (cur_token, "push_chat_period_ms", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field16) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "push_chat_limit", cur_token_real_len)) { + set_autocomplete_string ("push_chat_limit"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "push_chat_limit", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field17) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "disabled_features", cur_token_real_len)) { + set_autocomplete_string ("disabled_features"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "disabled_features", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field18) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "mutual", cur_token_real_len)) { + set_autocomplete_string ("mutual"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "mutual", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contact_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contact_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contact_link_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int autocomplete_constructor_contact_link_none (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int autocomplete_constructor_contact_link_has_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int autocomplete_constructor_contact_link_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int autocomplete_constructor_contact_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) { + set_autocomplete_string ("status"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_status (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contact_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "mutual_contacts", cur_token_real_len)) { + set_autocomplete_string ("mutual_contacts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "mutual_contacts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dc_option_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "hostname", cur_token_real_len)) { + set_autocomplete_string ("hostname"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "hostname", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_real_len)) { + set_autocomplete_string ("ip_address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "ip_address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) { + set_autocomplete_string ("port"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_real_len)) { + set_autocomplete_string ("ip_address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "ip_address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) { + set_autocomplete_string ("port"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) { + set_autocomplete_string ("ttl"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_decrypted_message_media (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_decrypted_message_action (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "ttl_seconds", cur_token_real_len)) { + set_autocomplete_string ("ttl_seconds"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "ttl_seconds", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_read_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) { + set_autocomplete_string ("random_ids"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) { + set_autocomplete_string ("random_ids"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) { + set_autocomplete_string ("random_ids"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_flush_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int autocomplete_constructor_decrypted_message_action_resend (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "start_seq_no", cur_token_real_len)) { + set_autocomplete_string ("start_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "start_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "end_seq_no", cur_token_real_len)) { + set_autocomplete_string ("end_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "end_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) { + set_autocomplete_string ("layer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_send_message_action (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_request_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) { + set_autocomplete_string ("exchange_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) { + set_autocomplete_string ("g_a"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_accept_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) { + set_autocomplete_string ("exchange_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) { + set_autocomplete_string ("g_b"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_abort_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) { + set_autocomplete_string ("exchange_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_commit_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) { + set_autocomplete_string ("exchange_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_action_noop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int autocomplete_constructor_decrypted_message_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_real_len)) { + set_autocomplete_string ("random_bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "random_bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) { + set_autocomplete_string ("layer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) { + set_autocomplete_string ("in_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) { + set_autocomplete_string ("out_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_decrypted_message (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + return 0; +} +int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) { + set_autocomplete_string ("str_thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) { + set_autocomplete_string ("thumb_w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) { + set_autocomplete_string ("thumb_h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_real_len)) { + set_autocomplete_string ("latitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) { + set_autocomplete_string ("longitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) { + set_autocomplete_string ("str_thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) { + set_autocomplete_string ("thumb_w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) { + set_autocomplete_string ("thumb_h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) { + set_autocomplete_string ("file_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) { + set_autocomplete_string ("str_thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) { + set_autocomplete_string ("thumb_w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) { + set_autocomplete_string ("thumb_h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field10) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_external_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo_size (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) { + set_autocomplete_string ("attributes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field8) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_real_len)) { + set_autocomplete_string ("str_thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) { + set_autocomplete_string ("thumb_w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) { + set_autocomplete_string ("thumb_h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field9) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) { + set_autocomplete_string ("iv"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dialog (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "top_message", cur_token_real_len)) { + set_autocomplete_string ("top_message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "top_message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "read_inbox_max_id", cur_token_real_len)) { + set_autocomplete_string ("read_inbox_max_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "read_inbox_max_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_real_len)) { + set_autocomplete_string ("unread_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "unread_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) { + set_autocomplete_string ("notify_settings"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer_notify_settings (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_disabled_feature (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "feature", cur_token_real_len)) { + set_autocomplete_string ("feature"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "feature", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) { + set_autocomplete_string ("description"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo_size (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) { + set_autocomplete_string ("attributes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field8) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_l19 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) { + set_autocomplete_string ("file_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo_size (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_image_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_animated (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + return 0; +} +int autocomplete_constructor_document_attribute_sticker_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_real_len)) { + set_autocomplete_string ("alt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "alt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_sticker (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_real_len)) { + set_autocomplete_string ("alt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "alt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) { + set_autocomplete_string ("stickerset"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_sticker_set (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_document_attribute_filename (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) { + set_autocomplete_string ("file_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_double (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; } + if (is_double ()) { + local_next_token (); + return 0; + } else { + return -1; + } +} +int autocomplete_constructor_encrypted_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_chat_waiting (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) { + set_autocomplete_string ("admin_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) { + set_autocomplete_string ("participant_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_chat_requested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) { + set_autocomplete_string ("admin_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) { + set_autocomplete_string ("participant_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) { + set_autocomplete_string ("g_a"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) { + set_autocomplete_string ("admin_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) { + set_autocomplete_string ("participant_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "g_a_or_b", cur_token_real_len)) { + set_autocomplete_string ("g_a_or_b"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "g_a_or_b", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field7) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_chat_discarded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + return 0; +} +int autocomplete_constructor_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_encrypted_file (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_encrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_error (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_real_len)) { + set_autocomplete_string ("code"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "code", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) { + set_autocomplete_string ("text"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_chat_invite_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + return 0; +} +int autocomplete_constructor_chat_invite_exported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_real_len)) { + set_autocomplete_string ("link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_file_location_unavailable (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) { + set_autocomplete_string ("volume_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) { + set_autocomplete_string ("local_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) { + set_autocomplete_string ("secret"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) { + set_autocomplete_string ("volume_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) { + set_autocomplete_string ("local_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) { + set_autocomplete_string ("secret"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geo_chat_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geo_chat_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_action (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + return 0; +} +int autocomplete_constructor_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) { + set_autocomplete_string ("longitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_real_len)) { + set_autocomplete_string ("latitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_imported_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_real_len)) { + set_autocomplete_string ("client_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "client_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_app_event (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "time", cur_token_real_len)) { + set_autocomplete_string ("time"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "time", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) { + set_autocomplete_string ("data"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + return 0; +} +int autocomplete_constructor_input_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + return 0; +} +int autocomplete_constructor_input_chat_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) { + set_autocomplete_string ("crop"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) { + set_autocomplete_string ("crop"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_phone_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_real_len)) { + set_autocomplete_string ("client_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "client_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) { + set_autocomplete_string ("phone"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + return 0; +} +int autocomplete_constructor_input_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + return 0; +} +int autocomplete_constructor_input_encrypted_file_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) { + set_autocomplete_string ("parts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_real_len)) { + set_autocomplete_string ("md5_checksum"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "md5_checksum", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) { + set_autocomplete_string ("parts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) { + set_autocomplete_string ("parts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) { + set_autocomplete_string ("name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_real_len)) { + set_autocomplete_string ("md5_checksum"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "md5_checksum", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_file_big (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) { + set_autocomplete_string ("parts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) { + set_autocomplete_string ("name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) { + set_autocomplete_string ("volume_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) { + set_autocomplete_string ("local_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) { + set_autocomplete_string ("secret"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_video_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_encrypted_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_audio_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_document_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + return 0; +} +int autocomplete_constructor_input_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_real_len)) { + set_autocomplete_string ("latitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_real_len)) { + set_autocomplete_string ("longitude"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + return 0; +} +int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) { + set_autocomplete_string ("geo_point"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_point (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "video_id", cur_token_real_len)) { + set_autocomplete_string ("video_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "video_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_video (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "audio_id", cur_token_real_len)) { + set_autocomplete_string ("audio_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "audio_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_audio (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) { + set_autocomplete_string ("attributes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) { + set_autocomplete_string ("attributes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "document_id", cur_token_real_len)) { + set_autocomplete_string ("document_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "document_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_document (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) { + set_autocomplete_string ("geo_point"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_point (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "provider", cur_token_real_len)) { + set_autocomplete_string ("provider"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "provider", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_real_len)) { + set_autocomplete_string ("venue_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "venue_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int autocomplete_constructor_input_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int autocomplete_constructor_input_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int autocomplete_constructor_input_notify_geo_chat_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "geo_peer", cur_token_real_len)) { + set_autocomplete_string ("geo_peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "geo_peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_peer_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int autocomplete_constructor_input_peer_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int autocomplete_constructor_input_peer_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_peer_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int autocomplete_constructor_input_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int autocomplete_constructor_input_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_real_len)) { + set_autocomplete_string ("mute_until"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "mute_until", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_real_len)) { + set_autocomplete_string ("sound"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sound", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_real_len)) { + set_autocomplete_string ("show_previews"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "show_previews", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_real_len)) { + set_autocomplete_string ("events_mask"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "events_mask", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + return 0; +} +int autocomplete_constructor_input_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_photo_crop_auto (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + return 0; +} +int autocomplete_constructor_input_photo_crop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "crop_left", cur_token_real_len)) { + set_autocomplete_string ("crop_left"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "crop_left", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "crop_top", cur_token_real_len)) { + set_autocomplete_string ("crop_top"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "crop_top", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "crop_width", cur_token_real_len)) { + set_autocomplete_string ("crop_width"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "crop_width", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_double (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; } + return 0; +} +int autocomplete_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int autocomplete_constructor_input_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int autocomplete_constructor_input_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int autocomplete_constructor_input_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int autocomplete_constructor_input_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_sticker_set_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + return 0; +} +int autocomplete_constructor_input_sticker_set_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_sticker_set_short_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_real_len)) { + set_autocomplete_string ("short_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "short_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int autocomplete_constructor_input_user_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int autocomplete_constructor_input_user_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_user_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + return 0; +} +int autocomplete_constructor_input_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_int (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; } + if (is_int ()) { + local_next_token (); + return 0; + } else { + return -1; + } +} +int autocomplete_constructor_int128 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_int256 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_keyboard_button (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_keyboard_button_row (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; } + if (is_int ()) { + local_next_token (); + return 0; + } else { + return -1; + } +} +int autocomplete_constructor_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) { + set_autocomplete_string ("to_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) { + set_autocomplete_string ("fwd_from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) { + set_autocomplete_string ("fwd_date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) { + set_autocomplete_string ("reply_to_msg_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field10) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) { + set_autocomplete_string ("reply_markup"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_reply_markup (field11) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) { + set_autocomplete_string ("to_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_action (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int autocomplete_constructor_message_action_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int autocomplete_constructor_message_action_chat_joined_by_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) { + set_autocomplete_string ("inviter_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int autocomplete_constructor_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_real_len)) { + set_autocomplete_string ("video"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_video (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_geo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) { + set_autocomplete_string ("geo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_point (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_unsupported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int autocomplete_constructor_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "document", cur_token_real_len)) { + set_autocomplete_string ("document"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_document (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "audio", cur_token_real_len)) { + set_autocomplete_string ("audio"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_audio (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_real_len)) { + set_autocomplete_string ("webpage"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "webpage", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_web_page (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) { + set_autocomplete_string ("geo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_point (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "provider", cur_token_real_len)) { + set_autocomplete_string ("provider"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "provider", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_real_len)) { + set_autocomplete_string ("venue_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "venue_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_message_media_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_real_len)) { + set_autocomplete_string ("video"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_video (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int autocomplete_constructor_nearest_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_real_len)) { + set_autocomplete_string ("country"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "country", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_real_len)) { + set_autocomplete_string ("this_dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "this_dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "nearest_dc", cur_token_real_len)) { + set_autocomplete_string ("nearest_dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "nearest_dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int autocomplete_constructor_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int autocomplete_constructor_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int autocomplete_constructor_null (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; } + return 0; +} +int autocomplete_constructor_p_q_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) { + set_autocomplete_string ("pq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) { + set_autocomplete_string ("p"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_real_len)) { + set_autocomplete_string ("new_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "new_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int256 (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_p_q_inner_data_temp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) { + set_autocomplete_string ("pq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) { + set_autocomplete_string ("p"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_real_len)) { + set_autocomplete_string ("new_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "new_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int256 (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "expires_in", cur_token_real_len)) { + set_autocomplete_string ("expires_in"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "expires_in", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_peer_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int autocomplete_constructor_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int autocomplete_constructor_peer_notify_settings_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + return 0; +} +int autocomplete_constructor_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_real_len)) { + set_autocomplete_string ("mute_until"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "mute_until", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_real_len)) { + set_autocomplete_string ("sound"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sound", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_real_len)) { + set_autocomplete_string ("show_previews"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "show_previews", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_real_len)) { + set_autocomplete_string ("events_mask"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "events_mask", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) { + set_autocomplete_string ("geo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_point (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_real_len)) { + set_autocomplete_string ("sizes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) { + set_autocomplete_string ("geo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_point (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_real_len)) { + set_autocomplete_string ("sizes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field7) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo_size_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) { + set_autocomplete_string ("location"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photo_cached_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) { + set_autocomplete_string ("location"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; } + return 0; +} +int autocomplete_constructor_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int autocomplete_constructor_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int autocomplete_constructor_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int autocomplete_constructor_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int autocomplete_constructor_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_received_notify_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_reply_keyboard_hide (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_reply_keyboard_force_reply (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_reply_keyboard_markup (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "rows", cur_token_real_len)) { + set_autocomplete_string ("rows"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "rows", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_res_p_q (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) { + set_autocomplete_string ("pq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 30 && !cur_token_quoted && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_real_len)) { + set_autocomplete_string ("server_public_key_fingerprints"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 30 && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_send_message_typing_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) { + set_autocomplete_string ("progress"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) { + set_autocomplete_string ("progress"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) { + set_autocomplete_string ("progress"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_real_len)) { + set_autocomplete_string ("progress"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int autocomplete_constructor_server_d_h_params_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash", cur_token_real_len)) { + set_autocomplete_string ("new_nonce_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "new_nonce_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_server_d_h_params_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "encrypted_answer", cur_token_real_len)) { + set_autocomplete_string ("encrypted_answer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "encrypted_answer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_server_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_real_len)) { + set_autocomplete_string ("g"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "g", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "dh_prime", cur_token_real_len)) { + set_autocomplete_string ("dh_prime"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "dh_prime", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) { + set_autocomplete_string ("g_a"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "server_time", cur_token_real_len)) { + set_autocomplete_string ("server_time"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "server_time", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dh_gen_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash1", cur_token_real_len)) { + set_autocomplete_string ("new_nonce_hash1"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash1", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dh_gen_retry (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash2", cur_token_real_len)) { + set_autocomplete_string ("new_nonce_hash2"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash2", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_dh_gen_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash3", cur_token_real_len)) { + set_autocomplete_string ("new_nonce_hash3"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash3", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_sticker_pack (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_real_len)) { + set_autocomplete_string ("emoticon"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "emoticon", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_real_len)) { + set_autocomplete_string ("documents"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_real_len)) { + set_autocomplete_string ("short_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "short_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_string (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; } + if (cur_token_len >= 0) { + local_next_token (); + return 0; + } else { + return -1; + } +} +int autocomplete_constructor_update_new_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_message_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_send_message_action (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_send_message_action (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) { + set_autocomplete_string ("participants"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_participants (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) { + set_autocomplete_string ("status"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_status (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_profile_photo (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "previous", cur_token_real_len)) { + set_autocomplete_string ("previous"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "previous", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_contact_registered (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_contact_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_real_len)) { + set_autocomplete_string ("my_link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "my_link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_contact_link (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_real_len)) { + set_autocomplete_string ("foreign_link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "foreign_link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_contact_link (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_new_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "auth_key_id", cur_token_real_len)) { + set_autocomplete_string ("auth_key_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "auth_key_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "device", cur_token_real_len)) { + set_autocomplete_string ("device"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "device", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) { + set_autocomplete_string ("location"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "geo_message", cur_token_real_len)) { + set_autocomplete_string ("geo_message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "geo_message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_chat_message (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "encr_message", cur_token_real_len)) { + set_autocomplete_string ("encr_message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "encr_message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_encrypted_message (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) { + set_autocomplete_string ("qts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_encryption (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "encr_chat", cur_token_real_len)) { + set_autocomplete_string ("encr_chat"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "encr_chat", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_encrypted_chat (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) { + set_autocomplete_string ("max_date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_chat_participant_add (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) { + set_autocomplete_string ("inviter_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_dc_options (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_real_len)) { + set_autocomplete_string ("dc_options"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "dc_options", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) { + set_autocomplete_string ("blocked"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "notify_peer", cur_token_real_len)) { + set_autocomplete_string ("notify_peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "notify_peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_notify_peer (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) { + set_autocomplete_string ("notify_settings"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer_notify_settings (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_service_notification (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "message_text", cur_token_real_len)) { + set_autocomplete_string ("message_text"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "message_text", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "popup", cur_token_real_len)) { + set_autocomplete_string ("popup"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "popup", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_privacy (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_privacy_key (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) { + set_autocomplete_string ("rules"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_user_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) { + set_autocomplete_string ("phone"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_read_history_inbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_read_history_outbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_real_len)) { + set_autocomplete_string ("webpage"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "webpage", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_web_page (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_read_messages_contents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_update_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates_too_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + return 0; +} +int autocomplete_constructor_update_short_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) { + set_autocomplete_string ("fwd_from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) { + set_autocomplete_string ("fwd_date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) { + set_autocomplete_string ("reply_to_msg_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_update_short_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) { + set_autocomplete_string ("fwd_from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) { + set_autocomplete_string ("fwd_date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) { + set_autocomplete_string ("reply_to_msg_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_update_short (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "update", cur_token_real_len)) { + set_autocomplete_string ("update"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "update", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_update (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates_combined (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_real_len)) { + set_autocomplete_string ("updates"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "seq_start", cur_token_real_len)) { + set_autocomplete_string ("seq_start"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "seq_start", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_real_len)) { + set_autocomplete_string ("updates"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) { + set_autocomplete_string ("phone"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_profile_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) { + set_autocomplete_string ("status"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_status (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 14)) { + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "bot_info_version", cur_token_real_len)) { + set_autocomplete_string ("bot_info_version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "bot_info_version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_user_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) { + set_autocomplete_string ("user"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_real_len)) { + set_autocomplete_string ("link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_contacts_link (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "profile_photo", cur_token_real_len)) { + set_autocomplete_string ("profile_photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "profile_photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) { + set_autocomplete_string ("notify_settings"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_peer_notify_settings (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) { + set_autocomplete_string ("blocked"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) { + set_autocomplete_string ("bot_info"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bot_info (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user_profile_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + return 0; +} +int autocomplete_constructor_user_profile_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "photo_id", cur_token_real_len)) { + set_autocomplete_string ("photo_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "photo_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) { + set_autocomplete_string ("photo_small"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) { + set_autocomplete_string ("photo_big"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_file_location (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user_status_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int autocomplete_constructor_user_status_online (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_real_len)) { + set_autocomplete_string ("expires"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "expires", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user_status_offline (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "was_online", cur_token_real_len)) { + set_autocomplete_string ("was_online"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "was_online", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_user_status_recently (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int autocomplete_constructor_user_status_last_week (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int autocomplete_constructor_user_status_last_month (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int autocomplete_constructor_vector (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; } + if (ODDP(T->params[0])) { return -1; } + struct paramed_type *var0 = T->params[0]; assert (var0); + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var1 = INT2PTR (get_int ()); + assert (var1); + local_next_token (); + expect_token_autocomplete ("[", 1); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + while (multiplicity3 -- > 0) { + if (autocomplete_type_any (field3) < 0) { return -1;} + } + expect_token_autocomplete ("]", 1); + return 0; +} +int autocomplete_constructor_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo_size (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) { + set_autocomplete_string ("mime_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) { + set_autocomplete_string ("size"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) { + set_autocomplete_string ("thumb"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo_size (field9) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) { + set_autocomplete_string ("w"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) { + set_autocomplete_string ("h"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_wall_paper (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_real_len)) { + set_autocomplete_string ("sizes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_real_len)) { + set_autocomplete_string ("color"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "color", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_wall_paper_solid (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bg_color", cur_token_real_len)) { + set_autocomplete_string ("bg_color"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bg_color", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_real_len)) { + set_autocomplete_string ("color"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "color", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_web_page_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_web_page_pending (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_real_len)) { + set_autocomplete_string ("url"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "url", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "display_url", cur_token_real_len)) { + set_autocomplete_string ("display_url"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "display_url", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "site_name", cur_token_real_len)) { + set_autocomplete_string ("site_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "site_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_real_len)) { + set_autocomplete_string ("description"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "embed_url", cur_token_real_len)) { + set_autocomplete_string ("embed_url"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "embed_url", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "embed_type", cur_token_real_len)) { + set_autocomplete_string ("embed_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "embed_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "embed_width", cur_token_real_len)) { + set_autocomplete_string ("embed_width"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "embed_width", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "embed_height", cur_token_real_len)) { + set_autocomplete_string ("embed_height"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "embed_height", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 7)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) { + set_autocomplete_string ("duration"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 8)) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "author", cur_token_real_len)) { + set_autocomplete_string ("author"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "author", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field15) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_account_authorizations (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_account_no_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) { + set_autocomplete_string ("new_salt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_real_len)) { + set_autocomplete_string ("email_unconfirmed_pattern"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 25 && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_account_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "current_salt", cur_token_real_len)) { + set_autocomplete_string ("current_salt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "current_salt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) { + set_autocomplete_string ("new_salt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_real_len)) { + set_autocomplete_string ("hint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "has_recovery", cur_token_real_len)) { + set_autocomplete_string ("has_recovery"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "has_recovery", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_real_len)) { + set_autocomplete_string ("email_unconfirmed_pattern"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 25 && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_account_password_input_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) { + set_autocomplete_string ("new_salt"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "new_password_hash", cur_token_real_len)) { + set_autocomplete_string ("new_password_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "new_password_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_real_len)) { + set_autocomplete_string ("hint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "email", cur_token_real_len)) { + set_autocomplete_string ("email"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "email", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_account_password_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_account_privacy_rules (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) { + set_autocomplete_string ("rules"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_account_sent_change_phone_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) { + set_autocomplete_string ("send_call_timeout"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_checked_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_exported_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_password_recovery (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_sent_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_real_len)) { + set_autocomplete_string ("phone_registered"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "phone_registered", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) { + set_autocomplete_string ("send_call_timeout"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_real_len)) { + set_autocomplete_string ("is_password"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "is_password", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_auth_sent_app_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_real_len)) { + set_autocomplete_string ("phone_registered"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "phone_registered", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) { + set_autocomplete_string ("send_call_timeout"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_real_len)) { + set_autocomplete_string ("is_password"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "is_password", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_encr_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; } + expect_token_autocomplete ("[", 1); + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + while (multiplicity1 -- > 0) { + if (autocomplete_type_any (field1) < 0) { return -1;} + } + expect_token_autocomplete ("]", 1); + return 0; +} +int autocomplete_constructor_binlog_start (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int autocomplete_constructor_binlog_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) { + set_autocomplete_string ("dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) { + set_autocomplete_string ("name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_real_len)) { + set_autocomplete_string ("ip"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) { + set_autocomplete_string ("port"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_dc_option_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) { + set_autocomplete_string ("dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) { + set_autocomplete_string ("name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_real_len)) { + set_autocomplete_string ("ip"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) { + set_autocomplete_string ("port"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_auth_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) { + set_autocomplete_string ("dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_binlog_encr_key (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_default_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) { + set_autocomplete_string ("dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_dc_signed (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) { + set_autocomplete_string ("dc"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_our_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "root", cur_token_real_len)) { + set_autocomplete_string ("root"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "root", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "prime", cur_token_real_len)) { + set_autocomplete_string ("prime"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "prime", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_binlog_encr_key (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_pts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_qts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) { + set_autocomplete_string ("qts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_date (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_seq (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_encr_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_real_len)) { + set_autocomplete_string ("admin"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "admin", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_binlog_encr_key (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "g_key", cur_token_real_len)) { + set_autocomplete_string ("g_key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "g_key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_binlog_encr_key (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_real_len)) { + set_autocomplete_string ("state"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) { + set_autocomplete_string ("ttl"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) { + set_autocomplete_string ("layer"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) { + set_autocomplete_string ("in_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "last_in_seq_no", cur_token_real_len)) { + set_autocomplete_string ("last_in_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "last_in_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) { + set_autocomplete_string ("out_seq_no"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 27)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field15) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) { + set_autocomplete_string ("exchange_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_binlog_encr_key (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_real_len)) { + set_autocomplete_string ("state"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_user_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_user_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) { + set_autocomplete_string ("access_hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) { + set_autocomplete_string ("phone"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_real_len)) { + set_autocomplete_string ("real_first_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "real_first_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_real_len)) { + set_autocomplete_string ("real_last_name"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "real_last_name", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "user_photo", cur_token_real_len)) { + set_autocomplete_string ("user_photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "user_photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user_profile_photo (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_real_len)) { + set_autocomplete_string ("last_read_in"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "last_read_in", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_real_len)) { + set_autocomplete_string ("last_read_out"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "last_read_out", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_real_len)) { + set_autocomplete_string ("bot_info"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bot_info (field14) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "user_num", cur_token_real_len)) { + set_autocomplete_string ("user_num"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "user_num", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) { + set_autocomplete_string ("participants"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_real_len)) { + set_autocomplete_string ("chat_photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "chat_photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_real_len)) { + set_autocomplete_string ("admin"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "admin", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_real_len)) { + set_autocomplete_string ("last_read_in"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "last_read_in", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_real_len)) { + set_autocomplete_string ("last_read_out"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "last_read_out", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) { + set_autocomplete_string ("inviter_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "old_id", cur_token_real_len)) { + set_autocomplete_string ("old_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "old_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "new_id", cur_token_real_len)) { + set_autocomplete_string ("new_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "new_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_message_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) { + set_autocomplete_string ("lid"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_message_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) { + set_autocomplete_string ("lid"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) { + set_autocomplete_string ("to_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) { + set_autocomplete_string ("to_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) { + set_autocomplete_string ("fwd_from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) { + set_autocomplete_string ("fwd_date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_action (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "reply_id", cur_token_real_len)) { + set_autocomplete_string ("reply_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "reply_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) { + set_autocomplete_string ("reply_markup"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_reply_markup (field13) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_message_encr_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) { + set_autocomplete_string ("lid"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) { + set_autocomplete_string ("from_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) { + set_autocomplete_string ("to_type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) { + set_autocomplete_string ("to_id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "encr_media", cur_token_real_len)) { + set_autocomplete_string ("encr_media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "encr_media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_decrypted_message_media (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "encr_action", cur_token_real_len)) { + set_autocomplete_string ("encr_action"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "encr_action", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_decrypted_message_action (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_encrypted_file (field10) < 0) { return -1;} + } + return 0; +} +int autocomplete_constructor_binlog_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_real_len)) { + set_autocomplete_string ("lid"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int autocomplete_constructor_contacts_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) { + set_autocomplete_string ("blocked"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_blocked_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) { + set_autocomplete_string ("count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) { + set_autocomplete_string ("blocked"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_contacts_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + return 0; +} +int autocomplete_constructor_contacts_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) { + set_autocomplete_string ("contacts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) { + set_autocomplete_string ("results"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_imported_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "imported", cur_token_real_len)) { + set_autocomplete_string ("imported"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "imported", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "retry_contacts", cur_token_real_len)) { + set_autocomplete_string ("retry_contacts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "retry_contacts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_real_len)) { + set_autocomplete_string ("my_link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "my_link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_contact_link (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_real_len)) { + set_autocomplete_string ("foreign_link"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "foreign_link", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_contact_link (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) { + set_autocomplete_string ("user"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_contacts_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) { + set_autocomplete_string ("results"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geochats_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) { + set_autocomplete_string ("results"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geochats_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geochats_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) { + set_autocomplete_string ("count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_geochats_stated_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_geo_chat_message (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_help_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "critical", cur_token_real_len)) { + set_autocomplete_string ("critical"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "critical", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_real_len)) { + set_autocomplete_string ("url"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "url", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) { + set_autocomplete_string ("text"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_help_no_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + return 0; +} +int autocomplete_constructor_help_invite_text (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_help_support (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) { + set_autocomplete_string ("user"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_user (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_affected_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_affected_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + return 0; +} +int autocomplete_constructor_messages_all_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_real_len)) { + set_autocomplete_string ("packs"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "packs", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "sets", cur_token_real_len)) { + set_autocomplete_string ("sets"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "sets", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_real_len)) { + set_autocomplete_string ("documents"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "full_chat", cur_token_real_len)) { + set_autocomplete_string ("full_chat"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "full_chat", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_chat_full (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_dh_config_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_real_len)) { + set_autocomplete_string ("random"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "random", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_dh_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_real_len)) { + set_autocomplete_string ("g"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "g", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) { + set_autocomplete_string ("p"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_real_len)) { + set_autocomplete_string ("random"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "random", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_dialogs (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_real_len)) { + set_autocomplete_string ("dialogs"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "dialogs", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_dialogs_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) { + set_autocomplete_string ("count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_real_len)) { + set_autocomplete_string ("dialogs"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "dialogs", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; } + return 0; +} +int autocomplete_constructor_messages_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) { + set_autocomplete_string ("count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) { + set_autocomplete_string ("messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_sent_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_sent_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_encrypted_file (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_sent_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_sent_message_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_message_media (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_real_len)) { + set_autocomplete_string ("pts_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_real_len)) { + set_autocomplete_string ("links"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "links", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field6) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "set", cur_token_real_len)) { + set_autocomplete_string ("set"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "set", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_sticker_set (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_real_len)) { + set_autocomplete_string ("packs"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "packs", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_real_len)) { + set_autocomplete_string ("documents"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_messages_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + return 0; +} +int autocomplete_constructor_messages_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "stickers", cur_token_real_len)) { + set_autocomplete_string ("stickers"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "stickers", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photos_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_photo (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photos_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_real_len)) { + set_autocomplete_string ("photos"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "photos", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_photos_photos_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) { + set_autocomplete_string ("count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_real_len)) { + set_autocomplete_string ("photos"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "photos", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_storage_file_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_jpeg (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_gif (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_png (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_pdf (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_mp3 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_mov (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_partial (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_mp4 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_storage_file_webp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int autocomplete_constructor_updates_difference_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates_difference (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_real_len)) { + set_autocomplete_string ("new_messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_real_len)) { + set_autocomplete_string ("new_encrypted_messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_real_len)) { + set_autocomplete_string ("other_updates"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "other_updates", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_real_len)) { + set_autocomplete_string ("state"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates_difference_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_real_len)) { + set_autocomplete_string ("new_messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_real_len)) { + set_autocomplete_string ("new_encrypted_messages"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_real_len)) { + set_autocomplete_string ("other_updates"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "other_updates", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) { + set_autocomplete_string ("chats"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field5) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "intermediate_state", cur_token_real_len)) { + set_autocomplete_string ("intermediate_state"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "intermediate_state", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_updates_state (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) { + set_autocomplete_string ("qts"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) { + set_autocomplete_string ("seq"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_real_len)) { + set_autocomplete_string ("unread_count"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "unread_count", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int autocomplete_constructor_upload_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; } + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) { + set_autocomplete_string ("type"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_storage_file_type (field1) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "mtime", cur_token_real_len)) { + set_autocomplete_string ("mtime"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "mtime", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return -1; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return -1;} + return 0; +} +int autocomplete_type_account_days_t_t_l (struct paramed_type *T) { + if (autocomplete_constructor_account_days_t_t_l (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_account_days_t_t_l (struct paramed_type *T) { + if (autocomplete_constructor_account_days_t_t_l (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_account_days_t_t_l (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "accountDaysTTL", text_len)) { *R = tstrdup ("accountDaysTTL"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_audio (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_audio); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_audio_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_audio (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_audio); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_audio_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_audio (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "audioEmpty", text_len)) { *R = tstrdup ("audioEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "audio", text_len)) { *R = tstrdup ("audio"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_authorization (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_authorization); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_authorization (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_authorization); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_authorization (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "authorization", text_len)) { *R = tstrdup ("authorization"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_bool (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bool); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bool_false (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bool_true (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_bool (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bool); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bool_false (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bool_true (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_bool (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "boolFalse", text_len)) { *R = tstrdup ("boolFalse"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "boolTrue", text_len)) { *R = tstrdup ("boolTrue"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_bot_command (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_command); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_command (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_command_old (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_bot_command (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_command); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_command (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_command_old (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_bot_command (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "botCommand", text_len)) { *R = tstrdup ("botCommand"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "botCommandOld", text_len)) { *R = tstrdup ("botCommandOld"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_bot_info (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_info); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_info_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_info (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_bot_info (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bot_info); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_info_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_bot_info (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_bot_info (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "botInfoEmpty", text_len)) { *R = tstrdup ("botInfoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "botInfo", text_len)) { *R = tstrdup ("botInfo"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_bytes (struct paramed_type *T) { + if (autocomplete_constructor_bytes (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_bytes (struct paramed_type *T) { + if (autocomplete_constructor_bytes (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_bytes (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "bytes", text_len)) { *R = tstrdup ("bytes"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_forbidden (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_forbidden (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatEmpty", text_len)) { *R = tstrdup ("chatEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "chat", text_len)) { *R = tstrdup ("chat"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "chatForbidden", text_len)) { *R = tstrdup ("chatForbidden"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "geoChat", text_len)) { *R = tstrdup ("geoChat"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_full (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatFull", text_len)) { *R = tstrdup ("chatFull"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_invite (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_invite); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_already (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_invite (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_invite); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_already (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_invite (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatInviteAlready", text_len)) { *R = tstrdup ("chatInviteAlready"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "chatInvite", text_len)) { *R = tstrdup ("chatInvite"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_located (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_located); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_located (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_located (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_located); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_located (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_located (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatLocated", text_len)) { *R = tstrdup ("chatLocated"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_participant (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participant); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_participant (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participant); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_participant (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatParticipant", text_len)) { *R = tstrdup ("chatParticipant"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_participants (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participants); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participants_forbidden (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participants (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_participants (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participants); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participants_forbidden (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_participants (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_participants (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatParticipantsForbidden", text_len)) { *R = tstrdup ("chatParticipantsForbidden"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "chatParticipants", text_len)) { *R = tstrdup ("chatParticipants"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_chat_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_chat_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_chat_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatPhotoEmpty", text_len)) { *R = tstrdup ("chatPhotoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "chatPhoto", text_len)) { *R = tstrdup ("chatPhoto"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_client_d_h_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_client_d_h_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_client_d_h_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_client_d_h_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_client_d_h_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_client_d_h_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_client_d_h_inner_data (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "client_DH_inner_data", text_len)) { *R = tstrdup ("client_DH_inner_data"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_config (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_config); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_config (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_config (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_config); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_config (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_config (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "config", text_len)) { *R = tstrdup ("config"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contact (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contact", text_len)) { *R = tstrdup ("contact"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact_blocked (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_blocked); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contact_blocked (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_blocked); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contact_blocked (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contactBlocked", text_len)) { *R = tstrdup ("contactBlocked"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact_found (struct paramed_type *T) { + if (autocomplete_constructor_contact_found (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_contact_found (struct paramed_type *T) { + if (autocomplete_constructor_contact_found (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_contact_found (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contactFound", text_len)) { *R = tstrdup ("contactFound"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact_link (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_link); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_unknown (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_none (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_has_phone (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contact_link (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_link); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_unknown (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_none (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_has_phone (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_link_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contact_link (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contactLinkUnknown", text_len)) { *R = tstrdup ("contactLinkUnknown"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "contactLinkNone", text_len)) { *R = tstrdup ("contactLinkNone"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "contactLinkHasPhone", text_len)) { *R = tstrdup ("contactLinkHasPhone"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "contactLinkContact", text_len)) { *R = tstrdup ("contactLinkContact"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact_status (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_status); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_status (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contact_status (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_status); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_status (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contact_status (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contactStatus", text_len)) { *R = tstrdup ("contactStatus"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contact_suggested (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_suggested); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_suggested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contact_suggested (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_suggested); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contact_suggested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contact_suggested (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contactSuggested", text_len)) { *R = tstrdup ("contactSuggested"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_dc_option (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dc_option); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dc_option_l28 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dc_option (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_dc_option (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dc_option); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dc_option_l28 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dc_option (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_dc_option (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "dcOptionL28", text_len)) { *R = tstrdup ("dcOptionL28"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "dcOption", text_len)) { *R = tstrdup ("dcOption"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_decrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_decrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_decrypted_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "decryptedMessage", text_len)) { *R = tstrdup ("decryptedMessage"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "decryptedMessageService", text_len)) { *R = tstrdup ("decryptedMessageService"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_decrypted_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_resend (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_request_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_noop (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_decrypted_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_resend (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_request_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_action_noop (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_decrypted_message_action (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "decryptedMessageActionSetMessageTTL", text_len)) { *R = tstrdup ("decryptedMessageActionSetMessageTTL"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "decryptedMessageActionReadMessages", text_len)) { *R = tstrdup ("decryptedMessageActionReadMessages"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "decryptedMessageActionDeleteMessages", text_len)) { *R = tstrdup ("decryptedMessageActionDeleteMessages"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "decryptedMessageActionScreenshotMessages", text_len)) { *R = tstrdup ("decryptedMessageActionScreenshotMessages"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "decryptedMessageActionFlushHistory", text_len)) { *R = tstrdup ("decryptedMessageActionFlushHistory"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "decryptedMessageActionResend", text_len)) { *R = tstrdup ("decryptedMessageActionResend"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "decryptedMessageActionNotifyLayer", text_len)) { *R = tstrdup ("decryptedMessageActionNotifyLayer"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "decryptedMessageActionTyping", text_len)) { *R = tstrdup ("decryptedMessageActionTyping"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "decryptedMessageActionRequestKey", text_len)) { *R = tstrdup ("decryptedMessageActionRequestKey"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "decryptedMessageActionAcceptKey", text_len)) { *R = tstrdup ("decryptedMessageActionAcceptKey"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "decryptedMessageActionAbortKey", text_len)) { *R = tstrdup ("decryptedMessageActionAbortKey"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "decryptedMessageActionCommitKey", text_len)) { *R = tstrdup ("decryptedMessageActionCommitKey"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "decryptedMessageActionNoop", text_len)) { *R = tstrdup ("decryptedMessageActionNoop"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_decrypted_message_layer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_layer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_layer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_decrypted_message_layer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_layer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_layer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_decrypted_message_layer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "decryptedMessageLayer", text_len)) { *R = tstrdup ("decryptedMessageLayer"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_decrypted_message_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_external_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_audio_l12 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_decrypted_message_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_external_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_decrypted_message_media_audio_l12 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_decrypted_message_media (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "decryptedMessageMediaEmpty", text_len)) { *R = tstrdup ("decryptedMessageMediaEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "decryptedMessageMediaPhoto", text_len)) { *R = tstrdup ("decryptedMessageMediaPhoto"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "decryptedMessageMediaGeoPoint", text_len)) { *R = tstrdup ("decryptedMessageMediaGeoPoint"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "decryptedMessageMediaContact", text_len)) { *R = tstrdup ("decryptedMessageMediaContact"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "decryptedMessageMediaDocument", text_len)) { *R = tstrdup ("decryptedMessageMediaDocument"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "decryptedMessageMediaVideo", text_len)) { *R = tstrdup ("decryptedMessageMediaVideo"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "decryptedMessageMediaAudio", text_len)) { *R = tstrdup ("decryptedMessageMediaAudio"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "decryptedMessageMediaExternalDocument", text_len)) { *R = tstrdup ("decryptedMessageMediaExternalDocument"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "decryptedMessageMediaVideoL12", text_len)) { *R = tstrdup ("decryptedMessageMediaVideoL12"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "decryptedMessageMediaAudioL12", text_len)) { *R = tstrdup ("decryptedMessageMediaAudioL12"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_dialog (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dialog); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dialog (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_dialog (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dialog); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dialog (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_dialog (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "dialog", text_len)) { *R = tstrdup ("dialog"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_disabled_feature (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_disabled_feature); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_disabled_feature (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_disabled_feature (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_disabled_feature); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_disabled_feature (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_disabled_feature (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "disabledFeature", text_len)) { *R = tstrdup ("disabledFeature"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_document (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_l19 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_document (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_l19 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_document (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "documentEmpty", text_len)) { *R = tstrdup ("documentEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "document", text_len)) { *R = tstrdup ("document"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "document_l19", text_len)) { *R = tstrdup ("document_l19"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_document_attribute (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document_attribute); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_image_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_animated (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_sticker_l28 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_sticker (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_filename (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_document_attribute (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document_attribute); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_image_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_animated (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_sticker_l28 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_sticker (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_document_attribute_filename (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_document_attribute (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "documentAttributeImageSize", text_len)) { *R = tstrdup ("documentAttributeImageSize"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "documentAttributeAnimated", text_len)) { *R = tstrdup ("documentAttributeAnimated"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "documentAttributeStickerL28", text_len)) { *R = tstrdup ("documentAttributeStickerL28"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "documentAttributeSticker", text_len)) { *R = tstrdup ("documentAttributeSticker"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "documentAttributeVideo", text_len)) { *R = tstrdup ("documentAttributeVideo"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "documentAttributeAudio", text_len)) { *R = tstrdup ("documentAttributeAudio"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "documentAttributeFilename", text_len)) { *R = tstrdup ("documentAttributeFilename"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_double (struct paramed_type *T) { + if (autocomplete_constructor_double (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_double (struct paramed_type *T) { + if (autocomplete_constructor_double (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_double (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "double", text_len)) { *R = tstrdup ("double"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_encrypted_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_waiting (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_requested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_discarded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_encrypted_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_waiting (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_requested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_chat_discarded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_encrypted_chat (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "encryptedChatEmpty", text_len)) { *R = tstrdup ("encryptedChatEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "encryptedChatWaiting", text_len)) { *R = tstrdup ("encryptedChatWaiting"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "encryptedChatRequested", text_len)) { *R = tstrdup ("encryptedChatRequested"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "encryptedChat", text_len)) { *R = tstrdup ("encryptedChat"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "encryptedChatDiscarded", text_len)) { *R = tstrdup ("encryptedChatDiscarded"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_encrypted_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_file_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_encrypted_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_file_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_encrypted_file (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "encryptedFileEmpty", text_len)) { *R = tstrdup ("encryptedFileEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "encryptedFile", text_len)) { *R = tstrdup ("encryptedFile"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_encrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_encrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_encrypted_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_encrypted_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "encryptedMessage", text_len)) { *R = tstrdup ("encryptedMessage"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "encryptedMessageService", text_len)) { *R = tstrdup ("encryptedMessageService"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_error (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_error); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_error (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_error (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_error); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_error (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_error (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "error", text_len)) { *R = tstrdup ("error"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_exported_chat_invite (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_exported_chat_invite); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_exported (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_exported_chat_invite (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_exported_chat_invite); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_chat_invite_exported (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_exported_chat_invite (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "chatInviteEmpty", text_len)) { *R = tstrdup ("chatInviteEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "chatInviteExported", text_len)) { *R = tstrdup ("chatInviteExported"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_file_location (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_file_location); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_file_location_unavailable (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_file_location (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_file_location); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_file_location_unavailable (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_file_location (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "fileLocationUnavailable", text_len)) { *R = tstrdup ("fileLocationUnavailable"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "fileLocation", text_len)) { *R = tstrdup ("fileLocation"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_geo_chat_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_chat_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_geo_chat_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_chat_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_chat_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_geo_chat_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "geoChatMessageEmpty", text_len)) { *R = tstrdup ("geoChatMessageEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "geoChatMessage", text_len)) { *R = tstrdup ("geoChatMessage"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "geoChatMessageService", text_len)) { *R = tstrdup ("geoChatMessageService"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_geo_point (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_point); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_point_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_geo_point (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_point); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_point_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_geo_point (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "geoPointEmpty", text_len)) { *R = tstrdup ("geoPointEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "geoPoint", text_len)) { *R = tstrdup ("geoPoint"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_imported_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_imported_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_imported_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_imported_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_imported_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_imported_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_imported_contact (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "importedContact", text_len)) { *R = tstrdup ("importedContact"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_app_event (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_app_event); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_app_event (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_app_event (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_app_event); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_app_event (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_app_event (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputAppEvent", text_len)) { *R = tstrdup ("inputAppEvent"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_audio (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_audio); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_audio (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_audio); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_audio (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputAudioEmpty", text_len)) { *R = tstrdup ("inputAudioEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputAudio", text_len)) { *R = tstrdup ("inputAudio"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_chat_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_chat_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_uploaded_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_chat_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_chat_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_uploaded_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_chat_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_chat_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputChatPhotoEmpty", text_len)) { *R = tstrdup ("inputChatPhotoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputChatUploadedPhoto", text_len)) { *R = tstrdup ("inputChatUploadedPhoto"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputChatPhoto", text_len)) { *R = tstrdup ("inputChatPhoto"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_phone_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_contact (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_contact); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_phone_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_contact (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPhoneContact", text_len)) { *R = tstrdup ("inputPhoneContact"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_document (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_document); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_document (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_document); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_document (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputDocumentEmpty", text_len)) { *R = tstrdup ("inputDocumentEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputDocument", text_len)) { *R = tstrdup ("inputDocument"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_encrypted_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_encrypted_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_encrypted_chat (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputEncryptedChat", text_len)) { *R = tstrdup ("inputEncryptedChat"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_encrypted_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_encrypted_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_encrypted_file (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputEncryptedFileEmpty", text_len)) { *R = tstrdup ("inputEncryptedFileEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputEncryptedFileUploaded", text_len)) { *R = tstrdup ("inputEncryptedFileUploaded"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputEncryptedFile", text_len)) { *R = tstrdup ("inputEncryptedFile"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputEncryptedFileBigUploaded", text_len)) { *R = tstrdup ("inputEncryptedFileBigUploaded"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file_big (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file_big (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_file (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputFile", text_len)) { *R = tstrdup ("inputFile"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputFileBig", text_len)) { *R = tstrdup ("inputFileBig"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_file_location (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file_location); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_file_location (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file_location); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_encrypted_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_audio_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_document_file_location (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_file_location (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputFileLocation", text_len)) { *R = tstrdup ("inputFileLocation"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputVideoFileLocation", text_len)) { *R = tstrdup ("inputVideoFileLocation"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputEncryptedFileLocation", text_len)) { *R = tstrdup ("inputEncryptedFileLocation"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputAudioFileLocation", text_len)) { *R = tstrdup ("inputAudioFileLocation"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputDocumentFileLocation", text_len)) { *R = tstrdup ("inputDocumentFileLocation"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_geo_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_geo_chat (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_chat); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_geo_chat (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputGeoChat", text_len)) { *R = tstrdup ("inputGeoChat"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_geo_point (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_point); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_point_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_geo_point (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_point); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_point_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_geo_point (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputGeoPointEmpty", text_len)) { *R = tstrdup ("inputGeoPointEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputGeoPoint", text_len)) { *R = tstrdup ("inputGeoPoint"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_venue (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_geo_point (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_media_venue (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_media (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputMediaEmpty", text_len)) { *R = tstrdup ("inputMediaEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputMediaUploadedPhoto", text_len)) { *R = tstrdup ("inputMediaUploadedPhoto"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputMediaPhoto", text_len)) { *R = tstrdup ("inputMediaPhoto"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputMediaGeoPoint", text_len)) { *R = tstrdup ("inputMediaGeoPoint"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputMediaContact", text_len)) { *R = tstrdup ("inputMediaContact"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "inputMediaUploadedVideo", text_len)) { *R = tstrdup ("inputMediaUploadedVideo"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "inputMediaUploadedThumbVideo", text_len)) { *R = tstrdup ("inputMediaUploadedThumbVideo"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "inputMediaVideo", text_len)) { *R = tstrdup ("inputMediaVideo"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "inputMediaUploadedAudio", text_len)) { *R = tstrdup ("inputMediaUploadedAudio"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "inputMediaAudio", text_len)) { *R = tstrdup ("inputMediaAudio"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "inputMediaUploadedDocument", text_len)) { *R = tstrdup ("inputMediaUploadedDocument"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "inputMediaUploadedThumbDocument", text_len)) { *R = tstrdup ("inputMediaUploadedThumbDocument"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "inputMediaDocument", text_len)) { *R = tstrdup ("inputMediaDocument"); return index; } else { index ++; }} + if (index == 13) { if (!strncmp (text, "inputMediaVenue", text_len)) { *R = tstrdup ("inputMediaVenue"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_notify_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_notify_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_chats (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_notify_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_notify_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_chats (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_notify_peer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputNotifyPeer", text_len)) { *R = tstrdup ("inputNotifyPeer"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputNotifyUsers", text_len)) { *R = tstrdup ("inputNotifyUsers"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputNotifyChats", text_len)) { *R = tstrdup ("inputNotifyChats"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputNotifyAll", text_len)) { *R = tstrdup ("inputNotifyAll"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputNotifyGeoChatPeer", text_len)) { *R = tstrdup ("inputNotifyGeoChatPeer"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_self (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_foreign (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_self (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_foreign (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_peer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPeerEmpty", text_len)) { *R = tstrdup ("inputPeerEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputPeerSelf", text_len)) { *R = tstrdup ("inputPeerSelf"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputPeerContact", text_len)) { *R = tstrdup ("inputPeerContact"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputPeerForeign", text_len)) { *R = tstrdup ("inputPeerForeign"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputPeerChat", text_len)) { *R = tstrdup ("inputPeerChat"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_peer_notify_events (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_events); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_events_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_events_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_peer_notify_events (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_events); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_events_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_events_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_peer_notify_events (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPeerNotifyEventsEmpty", text_len)) { *R = tstrdup ("inputPeerNotifyEventsEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputPeerNotifyEventsAll", text_len)) { *R = tstrdup ("inputPeerNotifyEventsAll"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_peer_notify_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_peer_notify_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_peer_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_peer_notify_settings (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPeerNotifySettings", text_len)) { *R = tstrdup ("inputPeerNotifySettings"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPhotoEmpty", text_len)) { *R = tstrdup ("inputPhotoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputPhoto", text_len)) { *R = tstrdup ("inputPhoto"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_photo_crop (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo_crop); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_crop_auto (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_crop (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_photo_crop (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo_crop); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_crop_auto (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_photo_crop (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_photo_crop (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPhotoCropAuto", text_len)) { *R = tstrdup ("inputPhotoCropAuto"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputPhotoCrop", text_len)) { *R = tstrdup ("inputPhotoCrop"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_privacy_key (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_key); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_privacy_key (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_key); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_privacy_key (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPrivacyKeyStatusTimestamp", text_len)) { *R = tstrdup ("inputPrivacyKeyStatusTimestamp"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_privacy_rule (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_rule); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_privacy_rule (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_rule); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_allow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_privacy_rule (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputPrivacyValueAllowContacts", text_len)) { *R = tstrdup ("inputPrivacyValueAllowContacts"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputPrivacyValueAllowAll", text_len)) { *R = tstrdup ("inputPrivacyValueAllowAll"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputPrivacyValueAllowUsers", text_len)) { *R = tstrdup ("inputPrivacyValueAllowUsers"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputPrivacyValueDisallowContacts", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowContacts"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputPrivacyValueDisallowAll", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowAll"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "inputPrivacyValueDisallowUsers", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowUsers"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_i_d (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_short_name (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_i_d (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_sticker_set_short_name (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_sticker_set (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputStickerSetEmpty", text_len)) { *R = tstrdup ("inputStickerSetEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputStickerSetID", text_len)) { *R = tstrdup ("inputStickerSetID"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputStickerSetShortName", text_len)) { *R = tstrdup ("inputStickerSetShortName"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_user (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_user); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_self (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_foreign (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_user (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_user); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_self (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_user_foreign (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_user (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputUserEmpty", text_len)) { *R = tstrdup ("inputUserEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputUserSelf", text_len)) { *R = tstrdup ("inputUserSelf"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputUserContact", text_len)) { *R = tstrdup ("inputUserContact"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputUserForeign", text_len)) { *R = tstrdup ("inputUserForeign"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_input_video (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_video); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_input_video (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_video); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_input_video (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputVideoEmpty", text_len)) { *R = tstrdup ("inputVideoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputVideo", text_len)) { *R = tstrdup ("inputVideo"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_int (struct paramed_type *T) { + if (autocomplete_constructor_int (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_int (struct paramed_type *T) { + if (autocomplete_constructor_int (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_int (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "int", text_len)) { *R = tstrdup ("int"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_int128 (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int128); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_int128 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_int128 (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int128); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_int128 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_int128 (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "int128", text_len)) { *R = tstrdup ("int128"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_int256 (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int256); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_int256 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_int256 (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int256); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_int256 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_int256 (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "int256", text_len)) { *R = tstrdup ("int256"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_keyboard_button (struct paramed_type *T) { + if (autocomplete_constructor_keyboard_button (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_keyboard_button (struct paramed_type *T) { + if (autocomplete_constructor_keyboard_button (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_keyboard_button (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "keyboardButton", text_len)) { *R = tstrdup ("keyboardButton"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_keyboard_button_row (struct paramed_type *T) { + if (autocomplete_constructor_keyboard_button_row (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_keyboard_button_row (struct paramed_type *T) { + if (autocomplete_constructor_keyboard_button_row (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_keyboard_button_row (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "keyboardButtonRow", text_len)) { *R = tstrdup ("keyboardButtonRow"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_long (struct paramed_type *T) { + if (autocomplete_constructor_long (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_long (struct paramed_type *T) { + if (autocomplete_constructor_long (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_long (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "long", text_len)) { *R = tstrdup ("long"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_service (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messageEmpty", text_len)) { *R = tstrdup ("messageEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "message", text_len)) { *R = tstrdup ("message"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "messageService", text_len)) { *R = tstrdup ("messageService"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_create (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_edit_title (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_edit_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_delete_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_add_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_delete_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_geo_chat_create (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_joined_by_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_create (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_edit_title (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_edit_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_delete_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_add_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_delete_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_geo_chat_create (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_action_chat_joined_by_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_message_action (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messageActionEmpty", text_len)) { *R = tstrdup ("messageActionEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messageActionChatCreate", text_len)) { *R = tstrdup ("messageActionChatCreate"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "messageActionChatEditTitle", text_len)) { *R = tstrdup ("messageActionChatEditTitle"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "messageActionChatEditPhoto", text_len)) { *R = tstrdup ("messageActionChatEditPhoto"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "messageActionChatDeletePhoto", text_len)) { *R = tstrdup ("messageActionChatDeletePhoto"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "messageActionChatAddUser", text_len)) { *R = tstrdup ("messageActionChatAddUser"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "messageActionChatDeleteUser", text_len)) { *R = tstrdup ("messageActionChatDeleteUser"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "messageActionGeoChatCreate", text_len)) { *R = tstrdup ("messageActionGeoChatCreate"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "messageActionGeoChatCheckin", text_len)) { *R = tstrdup ("messageActionGeoChatCheckin"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "messageActionChatJoinedByLink", text_len)) { *R = tstrdup ("messageActionChatJoinedByLink"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_message_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_geo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_unsupported (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_venue (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_photo_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_video_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_message_media (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_media); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_geo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_contact (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_unsupported (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_venue (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_photo_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_message_media_video_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_message_media (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messageMediaEmpty", text_len)) { *R = tstrdup ("messageMediaEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messageMediaPhoto", text_len)) { *R = tstrdup ("messageMediaPhoto"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "messageMediaVideo", text_len)) { *R = tstrdup ("messageMediaVideo"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "messageMediaGeo", text_len)) { *R = tstrdup ("messageMediaGeo"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "messageMediaContact", text_len)) { *R = tstrdup ("messageMediaContact"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "messageMediaUnsupported", text_len)) { *R = tstrdup ("messageMediaUnsupported"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "messageMediaDocument", text_len)) { *R = tstrdup ("messageMediaDocument"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "messageMediaAudio", text_len)) { *R = tstrdup ("messageMediaAudio"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "messageMediaWebPage", text_len)) { *R = tstrdup ("messageMediaWebPage"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "messageMediaVenue", text_len)) { *R = tstrdup ("messageMediaVenue"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "messageMediaPhotoL27", text_len)) { *R = tstrdup ("messageMediaPhotoL27"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "messageMediaVideoL27", text_len)) { *R = tstrdup ("messageMediaVideoL27"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_filter (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_filter); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photos (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photo_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photo_video_documents (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_filter (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_filter); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photos (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photo_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_photo_video_documents (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_document (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_input_messages_filter_audio (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_filter (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "inputMessagesFilterEmpty", text_len)) { *R = tstrdup ("inputMessagesFilterEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "inputMessagesFilterPhotos", text_len)) { *R = tstrdup ("inputMessagesFilterPhotos"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "inputMessagesFilterVideo", text_len)) { *R = tstrdup ("inputMessagesFilterVideo"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "inputMessagesFilterPhotoVideo", text_len)) { *R = tstrdup ("inputMessagesFilterPhotoVideo"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "inputMessagesFilterPhotoVideoDocuments", text_len)) { *R = tstrdup ("inputMessagesFilterPhotoVideoDocuments"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "inputMessagesFilterDocument", text_len)) { *R = tstrdup ("inputMessagesFilterDocument"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "inputMessagesFilterAudio", text_len)) { *R = tstrdup ("inputMessagesFilterAudio"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_nearest_dc (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_nearest_dc); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_nearest_dc (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_nearest_dc (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_nearest_dc); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_nearest_dc (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_nearest_dc (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "nearestDc", text_len)) { *R = tstrdup ("nearestDc"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_notify_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_notify_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_chats (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_notify_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_notify_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_peer (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_chats (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_notify_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_notify_peer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "notifyPeer", text_len)) { *R = tstrdup ("notifyPeer"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "notifyUsers", text_len)) { *R = tstrdup ("notifyUsers"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "notifyChats", text_len)) { *R = tstrdup ("notifyChats"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "notifyAll", text_len)) { *R = tstrdup ("notifyAll"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_null (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_null); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_null (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_null (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_null); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_null (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_null (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "null", text_len)) { *R = tstrdup ("null"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_p_q_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_p_q_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_p_q_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_p_q_inner_data_temp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_p_q_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_p_q_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_p_q_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_p_q_inner_data_temp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_p_q_inner_data (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "p_q_inner_data", text_len)) { *R = tstrdup ("p_q_inner_data"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "p_q_inner_data_temp", text_len)) { *R = tstrdup ("p_q_inner_data_temp"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_peer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_chat (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_peer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "peerUser", text_len)) { *R = tstrdup ("peerUser"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "peerChat", text_len)) { *R = tstrdup ("peerChat"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_peer_notify_events (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_events); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_events_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_events_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_peer_notify_events (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_events); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_events_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_events_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_peer_notify_events (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "peerNotifyEventsEmpty", text_len)) { *R = tstrdup ("peerNotifyEventsEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "peerNotifyEventsAll", text_len)) { *R = tstrdup ("peerNotifyEventsAll"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_peer_notify_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_settings_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_peer_notify_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_settings_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_peer_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_peer_notify_settings (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "peerNotifySettingsEmpty", text_len)) { *R = tstrdup ("peerNotifySettingsEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "peerNotifySettings", text_len)) { *R = tstrdup ("peerNotifySettings"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "photoEmpty", text_len)) { *R = tstrdup ("photoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "photo", text_len)) { *R = tstrdup ("photo"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "photoL27", text_len)) { *R = tstrdup ("photoL27"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_photo_size (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo_size); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_size_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_cached_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_photo_size (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo_size); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_size_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photo_cached_size (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_photo_size (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "photoSizeEmpty", text_len)) { *R = tstrdup ("photoSizeEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "photoSize", text_len)) { *R = tstrdup ("photoSize"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "photoCachedSize", text_len)) { *R = tstrdup ("photoCachedSize"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_privacy_key (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_key); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_privacy_key (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_key); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_privacy_key (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "privacyKeyStatusTimestamp", text_len)) { *R = tstrdup ("privacyKeyStatusTimestamp"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_privacy_rule (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_rule); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_privacy_rule (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_rule); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_allow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_privacy_rule (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "privacyValueAllowContacts", text_len)) { *R = tstrdup ("privacyValueAllowContacts"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "privacyValueAllowAll", text_len)) { *R = tstrdup ("privacyValueAllowAll"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "privacyValueAllowUsers", text_len)) { *R = tstrdup ("privacyValueAllowUsers"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "privacyValueDisallowContacts", text_len)) { *R = tstrdup ("privacyValueDisallowContacts"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "privacyValueDisallowAll", text_len)) { *R = tstrdup ("privacyValueDisallowAll"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "privacyValueDisallowUsers", text_len)) { *R = tstrdup ("privacyValueDisallowUsers"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_received_notify_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_received_notify_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_received_notify_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_received_notify_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_received_notify_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_received_notify_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_received_notify_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "receivedNotifyMessage", text_len)) { *R = tstrdup ("receivedNotifyMessage"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_reply_markup (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_reply_markup); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_hide (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_force_reply (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_markup (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_reply_markup (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_reply_markup); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_hide (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_force_reply (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_reply_keyboard_markup (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_reply_markup (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "replyKeyboardHide", text_len)) { *R = tstrdup ("replyKeyboardHide"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "replyKeyboardForceReply", text_len)) { *R = tstrdup ("replyKeyboardForceReply"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "replyKeyboardMarkup", text_len)) { *R = tstrdup ("replyKeyboardMarkup"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_res_p_q (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_res_p_q); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_res_p_q (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_res_p_q (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_res_p_q); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_res_p_q (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_res_p_q (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "resPQ", text_len)) { *R = tstrdup ("resPQ"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_send_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_send_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_typing_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_cancel_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_record_video_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_video_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_video_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_record_audio_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_audio_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_audio_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_photo_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_document_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_document_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_geo_location_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_choose_contact_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_send_message_action (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_send_message_action); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_typing_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_cancel_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_record_video_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_video_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_video_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_record_audio_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_audio_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_audio_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_photo_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_document_action_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_upload_document_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_geo_location_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_send_message_choose_contact_action (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_send_message_action (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "sendMessageTypingAction", text_len)) { *R = tstrdup ("sendMessageTypingAction"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "sendMessageCancelAction", text_len)) { *R = tstrdup ("sendMessageCancelAction"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "sendMessageRecordVideoAction", text_len)) { *R = tstrdup ("sendMessageRecordVideoAction"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "sendMessageUploadVideoActionL27", text_len)) { *R = tstrdup ("sendMessageUploadVideoActionL27"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "sendMessageUploadVideoAction", text_len)) { *R = tstrdup ("sendMessageUploadVideoAction"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "sendMessageRecordAudioAction", text_len)) { *R = tstrdup ("sendMessageRecordAudioAction"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "sendMessageUploadAudioActionL27", text_len)) { *R = tstrdup ("sendMessageUploadAudioActionL27"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "sendMessageUploadAudioAction", text_len)) { *R = tstrdup ("sendMessageUploadAudioAction"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "sendMessageUploadPhotoAction", text_len)) { *R = tstrdup ("sendMessageUploadPhotoAction"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "sendMessageUploadDocumentActionL27", text_len)) { *R = tstrdup ("sendMessageUploadDocumentActionL27"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "sendMessageUploadDocumentAction", text_len)) { *R = tstrdup ("sendMessageUploadDocumentAction"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "sendMessageGeoLocationAction", text_len)) { *R = tstrdup ("sendMessageGeoLocationAction"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "sendMessageChooseContactAction", text_len)) { *R = tstrdup ("sendMessageChooseContactAction"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_server_d_h_params (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_params); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_params_fail (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_params_ok (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_server_d_h_params (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_params); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_params_fail (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_params_ok (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_server_d_h_params (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "server_DH_params_fail", text_len)) { *R = tstrdup ("server_DH_params_fail"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "server_DH_params_ok", text_len)) { *R = tstrdup ("server_DH_params_ok"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_server_d_h_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_server_d_h_inner_data (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_inner_data); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_server_d_h_inner_data (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_server_d_h_inner_data (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "server_DH_inner_data", text_len)) { *R = tstrdup ("server_DH_inner_data"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_set_client_d_h_params_answer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_set_client_d_h_params_answer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_ok (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_retry (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_fail (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_set_client_d_h_params_answer (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_set_client_d_h_params_answer); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_ok (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_retry (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_dh_gen_fail (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_set_client_d_h_params_answer (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "dh_gen_ok", text_len)) { *R = tstrdup ("dh_gen_ok"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "dh_gen_retry", text_len)) { *R = tstrdup ("dh_gen_retry"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "dh_gen_fail", text_len)) { *R = tstrdup ("dh_gen_fail"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_sticker_pack (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_pack); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_sticker_pack (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_sticker_pack (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_pack); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_sticker_pack (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_sticker_pack (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "stickerPack", text_len)) { *R = tstrdup ("stickerPack"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_sticker_set (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_sticker_set (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_sticker_set (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "stickerSet", text_len)) { *R = tstrdup ("stickerSet"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_string (struct paramed_type *T) { + if (autocomplete_constructor_string (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_string (struct paramed_type *T) { + if (autocomplete_constructor_string (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_string (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "string", text_len)) { *R = tstrdup ("string"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_message_i_d (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_delete_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_user_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participants (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_status (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_name (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_contact_registered (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_contact_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_geo_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encrypted_chat_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encryption (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encrypted_messages_read (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participant_add (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participant_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_dc_options (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_service_notification (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_privacy (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_phone (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_history_inbox (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_history_outbox (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_messages_contents (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_msg_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_message_i_d (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_delete_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_user_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participants (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_status (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_name (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_contact_registered (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_contact_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_geo_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_new_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encrypted_chat_typing (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encryption (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_encrypted_messages_read (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participant_add (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_chat_participant_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_dc_options (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_notify_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_service_notification (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_privacy (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_user_phone (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_history_inbox (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_history_outbox (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_read_messages_contents (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_msg_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_update (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "updateNewMessage", text_len)) { *R = tstrdup ("updateNewMessage"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "updateMessageID", text_len)) { *R = tstrdup ("updateMessageID"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "updateDeleteMessages", text_len)) { *R = tstrdup ("updateDeleteMessages"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "updateUserTyping", text_len)) { *R = tstrdup ("updateUserTyping"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "updateChatUserTyping", text_len)) { *R = tstrdup ("updateChatUserTyping"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "updateChatParticipants", text_len)) { *R = tstrdup ("updateChatParticipants"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "updateUserStatus", text_len)) { *R = tstrdup ("updateUserStatus"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "updateUserName", text_len)) { *R = tstrdup ("updateUserName"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "updateUserPhoto", text_len)) { *R = tstrdup ("updateUserPhoto"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "updateContactRegistered", text_len)) { *R = tstrdup ("updateContactRegistered"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "updateContactLink", text_len)) { *R = tstrdup ("updateContactLink"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "updateNewAuthorization", text_len)) { *R = tstrdup ("updateNewAuthorization"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "updateNewGeoChatMessage", text_len)) { *R = tstrdup ("updateNewGeoChatMessage"); return index; } else { index ++; }} + if (index == 13) { if (!strncmp (text, "updateNewEncryptedMessage", text_len)) { *R = tstrdup ("updateNewEncryptedMessage"); return index; } else { index ++; }} + if (index == 14) { if (!strncmp (text, "updateEncryptedChatTyping", text_len)) { *R = tstrdup ("updateEncryptedChatTyping"); return index; } else { index ++; }} + if (index == 15) { if (!strncmp (text, "updateEncryption", text_len)) { *R = tstrdup ("updateEncryption"); return index; } else { index ++; }} + if (index == 16) { if (!strncmp (text, "updateEncryptedMessagesRead", text_len)) { *R = tstrdup ("updateEncryptedMessagesRead"); return index; } else { index ++; }} + if (index == 17) { if (!strncmp (text, "updateChatParticipantAdd", text_len)) { *R = tstrdup ("updateChatParticipantAdd"); return index; } else { index ++; }} + if (index == 18) { if (!strncmp (text, "updateChatParticipantDelete", text_len)) { *R = tstrdup ("updateChatParticipantDelete"); return index; } else { index ++; }} + if (index == 19) { if (!strncmp (text, "updateDcOptions", text_len)) { *R = tstrdup ("updateDcOptions"); return index; } else { index ++; }} + if (index == 20) { if (!strncmp (text, "updateUserBlocked", text_len)) { *R = tstrdup ("updateUserBlocked"); return index; } else { index ++; }} + if (index == 21) { if (!strncmp (text, "updateNotifySettings", text_len)) { *R = tstrdup ("updateNotifySettings"); return index; } else { index ++; }} + if (index == 22) { if (!strncmp (text, "updateServiceNotification", text_len)) { *R = tstrdup ("updateServiceNotification"); return index; } else { index ++; }} + if (index == 23) { if (!strncmp (text, "updatePrivacy", text_len)) { *R = tstrdup ("updatePrivacy"); return index; } else { index ++; }} + if (index == 24) { if (!strncmp (text, "updateUserPhone", text_len)) { *R = tstrdup ("updateUserPhone"); return index; } else { index ++; }} + if (index == 25) { if (!strncmp (text, "updateReadHistoryInbox", text_len)) { *R = tstrdup ("updateReadHistoryInbox"); return index; } else { index ++; }} + if (index == 26) { if (!strncmp (text, "updateReadHistoryOutbox", text_len)) { *R = tstrdup ("updateReadHistoryOutbox"); return index; } else { index ++; }} + if (index == 27) { if (!strncmp (text, "updateWebPage", text_len)) { *R = tstrdup ("updateWebPage"); return index; } else { index ++; }} + if (index == 28) { if (!strncmp (text, "updateReadMessagesContents", text_len)) { *R = tstrdup ("updateReadMessagesContents"); return index; } else { index ++; }} + if (index == 29) { if (!strncmp (text, "updateMsgUpdate", text_len)) { *R = tstrdup ("updateMsgUpdate"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_updates (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_too_long (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_combined (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_updates (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_too_long (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short_chat_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_update_short (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_combined (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_updates (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "updatesTooLong", text_len)) { *R = tstrdup ("updatesTooLong"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "updateShortMessage", text_len)) { *R = tstrdup ("updateShortMessage"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "updateShortChatMessage", text_len)) { *R = tstrdup ("updateShortChatMessage"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "updateShort", text_len)) { *R = tstrdup ("updateShort"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "updatesCombined", text_len)) { *R = tstrdup ("updatesCombined"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "updates", text_len)) { *R = tstrdup ("updates"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_user (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_user (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_user (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "userEmpty", text_len)) { *R = tstrdup ("userEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "user", text_len)) { *R = tstrdup ("user"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_user_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_user_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_user_full (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "userFull", text_len)) { *R = tstrdup ("userFull"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_user_profile_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_profile_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_profile_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_profile_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_user_profile_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_profile_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_profile_photo_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_profile_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_user_profile_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "userProfilePhotoEmpty", text_len)) { *R = tstrdup ("userProfilePhotoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "userProfilePhoto", text_len)) { *R = tstrdup ("userProfilePhoto"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_user_status (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_status); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_online (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_offline (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_recently (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_last_week (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_last_month (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_user_status (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_status); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_online (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_offline (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_recently (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_last_week (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_user_status_last_month (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_user_status (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "userStatusEmpty", text_len)) { *R = tstrdup ("userStatusEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "userStatusOnline", text_len)) { *R = tstrdup ("userStatusOnline"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "userStatusOffline", text_len)) { *R = tstrdup ("userStatusOffline"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "userStatusRecently", text_len)) { *R = tstrdup ("userStatusRecently"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "userStatusLastWeek", text_len)) { *R = tstrdup ("userStatusLastWeek"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "userStatusLastMonth", text_len)) { *R = tstrdup ("userStatusLastMonth"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_vector (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_vector); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_vector (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_vector (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_vector); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_vector (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_vector (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "vector", text_len)) { *R = tstrdup ("vector"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_video (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_video); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_video (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_video); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_video_l27 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_video (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "videoEmpty", text_len)) { *R = tstrdup ("videoEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "video", text_len)) { *R = tstrdup ("video"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "videoL27", text_len)) { *R = tstrdup ("videoL27"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_wall_paper (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_wall_paper); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_wall_paper (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_wall_paper_solid (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_wall_paper (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_wall_paper); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_wall_paper (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_wall_paper_solid (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_wall_paper (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "wallPaper", text_len)) { *R = tstrdup ("wallPaper"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "wallPaperSolid", text_len)) { *R = tstrdup ("wallPaperSolid"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_web_page (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_web_page); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page_pending (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_web_page (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_web_page); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page_pending (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_web_page (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_web_page (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "webPageEmpty", text_len)) { *R = tstrdup ("webPageEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "webPagePending", text_len)) { *R = tstrdup ("webPagePending"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "webPage", text_len)) { *R = tstrdup ("webPage"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_authorizations (struct paramed_type *T) { + if (autocomplete_constructor_account_authorizations (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_account_authorizations (struct paramed_type *T) { + if (autocomplete_constructor_account_authorizations (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_account_authorizations (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.authorizations", text_len)) { *R = tstrdup ("account.authorizations"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_password (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_no_password (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_password (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_account_password (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_no_password (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_password (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_account_password (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.noPassword", text_len)) { *R = tstrdup ("account.noPassword"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "account.password", text_len)) { *R = tstrdup ("account.password"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_password_input_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password_input_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_password_input_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_account_password_input_settings (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password_input_settings); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_password_input_settings (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_account_password_input_settings (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.passwordInputSettings", text_len)) { *R = tstrdup ("account.passwordInputSettings"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_password_settings (struct paramed_type *T) { + if (autocomplete_constructor_account_password_settings (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_account_password_settings (struct paramed_type *T) { + if (autocomplete_constructor_account_password_settings (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_account_password_settings (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.passwordSettings", text_len)) { *R = tstrdup ("account.passwordSettings"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_privacy_rules (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_privacy_rules); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_privacy_rules (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_account_privacy_rules (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_privacy_rules); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_privacy_rules (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_account_privacy_rules (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.privacyRules", text_len)) { *R = tstrdup ("account.privacyRules"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_account_sent_change_phone_code (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_sent_change_phone_code); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_sent_change_phone_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_account_sent_change_phone_code (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_sent_change_phone_code); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_account_sent_change_phone_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_account_sent_change_phone_code (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.sentChangePhoneCode", text_len)) { *R = tstrdup ("account.sentChangePhoneCode"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_auth_authorization (struct paramed_type *T) { + if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_auth_authorization (struct paramed_type *T) { + if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_auth_authorization (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "auth.authorization", text_len)) { *R = tstrdup ("auth.authorization"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_auth_checked_phone (struct paramed_type *T) { + if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_auth_checked_phone (struct paramed_type *T) { + if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_auth_checked_phone (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "auth.checkedPhone", text_len)) { *R = tstrdup ("auth.checkedPhone"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_auth_exported_authorization (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_exported_authorization); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_exported_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_auth_exported_authorization (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_exported_authorization); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_exported_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_auth_exported_authorization (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "auth.exportedAuthorization", text_len)) { *R = tstrdup ("auth.exportedAuthorization"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_auth_password_recovery (struct paramed_type *T) { + if (autocomplete_constructor_auth_password_recovery (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_auth_password_recovery (struct paramed_type *T) { + if (autocomplete_constructor_auth_password_recovery (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_auth_password_recovery (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "auth.passwordRecovery", text_len)) { *R = tstrdup ("auth.passwordRecovery"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_auth_sent_code (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_sent_code); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_sent_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_sent_app_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_auth_sent_code (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_sent_code); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_sent_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_auth_sent_app_code (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_auth_sent_code (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "auth.sentCode", text_len)) { *R = tstrdup ("auth.sentCode"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "auth.sentAppCode", text_len)) { *R = tstrdup ("auth.sentAppCode"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_binlog_encr_key (struct paramed_type *T) { + if (autocomplete_constructor_binlog_encr_key (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_binlog_encr_key (struct paramed_type *T) { + if (autocomplete_constructor_binlog_encr_key (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_binlog_encr_key (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "binlog.encrKey", text_len)) { *R = tstrdup ("binlog.encrKey"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_binlog_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_start (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_option (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_option_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_auth_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_default_dc (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_signed (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_our_id (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_dh_params (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_pts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_qts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_date (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_seq (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_exchange_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_user_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_user_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_add_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_del_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_msg_id (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_encr_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_msg_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_reset_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_binlog_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_start (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_option (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_option_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_auth_key (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_default_dc (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_dc_signed (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_our_id (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_dh_params (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_pts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_qts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_date (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_seq (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_encr_chat_exchange_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_user_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_user_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_add_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_chat_del_participant (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_set_msg_id (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_delete (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_message_encr_new (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_msg_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_binlog_reset_authorization (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_binlog_update (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "binlog.start", text_len)) { *R = tstrdup ("binlog.start"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "binlog.dcOption", text_len)) { *R = tstrdup ("binlog.dcOption"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "binlog.dcOptionNew", text_len)) { *R = tstrdup ("binlog.dcOptionNew"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "binlog.authKey", text_len)) { *R = tstrdup ("binlog.authKey"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "binlog.defaultDc", text_len)) { *R = tstrdup ("binlog.defaultDc"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "binlog.dcSigned", text_len)) { *R = tstrdup ("binlog.dcSigned"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "binlog.ourId", text_len)) { *R = tstrdup ("binlog.ourId"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "binlog.setDhParams", text_len)) { *R = tstrdup ("binlog.setDhParams"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "binlog.setPts", text_len)) { *R = tstrdup ("binlog.setPts"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "binlog.setQts", text_len)) { *R = tstrdup ("binlog.setQts"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "binlog.setDate", text_len)) { *R = tstrdup ("binlog.setDate"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "binlog.setSeq", text_len)) { *R = tstrdup ("binlog.setSeq"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "binlog.encrChatDelete", text_len)) { *R = tstrdup ("binlog.encrChatDelete"); return index; } else { index ++; }} + if (index == 13) { if (!strncmp (text, "binlog.encrChatNew", text_len)) { *R = tstrdup ("binlog.encrChatNew"); return index; } else { index ++; }} + if (index == 14) { if (!strncmp (text, "binlog.encrChatExchangeNew", text_len)) { *R = tstrdup ("binlog.encrChatExchangeNew"); return index; } else { index ++; }} + if (index == 15) { if (!strncmp (text, "binlog.userDelete", text_len)) { *R = tstrdup ("binlog.userDelete"); return index; } else { index ++; }} + if (index == 16) { if (!strncmp (text, "binlog.userNew", text_len)) { *R = tstrdup ("binlog.userNew"); return index; } else { index ++; }} + if (index == 17) { if (!strncmp (text, "binlog.chatNew", text_len)) { *R = tstrdup ("binlog.chatNew"); return index; } else { index ++; }} + if (index == 18) { if (!strncmp (text, "binlog.chatAddParticipant", text_len)) { *R = tstrdup ("binlog.chatAddParticipant"); return index; } else { index ++; }} + if (index == 19) { if (!strncmp (text, "binlog.chatDelParticipant", text_len)) { *R = tstrdup ("binlog.chatDelParticipant"); return index; } else { index ++; }} + if (index == 20) { if (!strncmp (text, "binlog.setMsgId", text_len)) { *R = tstrdup ("binlog.setMsgId"); return index; } else { index ++; }} + if (index == 21) { if (!strncmp (text, "binlog.messageDelete", text_len)) { *R = tstrdup ("binlog.messageDelete"); return index; } else { index ++; }} + if (index == 22) { if (!strncmp (text, "binlog.messageNew", text_len)) { *R = tstrdup ("binlog.messageNew"); return index; } else { index ++; }} + if (index == 23) { if (!strncmp (text, "binlog.messageEncrNew", text_len)) { *R = tstrdup ("binlog.messageEncrNew"); return index; } else { index ++; }} + if (index == 24) { if (!strncmp (text, "binlog.msgUpdate", text_len)) { *R = tstrdup ("binlog.msgUpdate"); return index; } else { index ++; }} + if (index == 25) { if (!strncmp (text, "binlog.resetAuthorization", text_len)) { *R = tstrdup ("binlog.resetAuthorization"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_blocked (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_blocked); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_blocked_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_blocked (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_blocked); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_blocked (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_blocked_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_blocked (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.blocked", text_len)) { *R = tstrdup ("contacts.blocked"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "contacts.blockedSlice", text_len)) { *R = tstrdup ("contacts.blockedSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_contacts (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_contacts); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_contacts_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_contacts (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_contacts); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_contacts_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_contacts (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.contactsNotModified", text_len)) { *R = tstrdup ("contacts.contactsNotModified"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "contacts.contacts", text_len)) { *R = tstrdup ("contacts.contacts"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_found (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_found); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_found (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_found (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_found); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_found (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_found (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.found", text_len)) { *R = tstrdup ("contacts.found"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_imported_contacts (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_imported_contacts); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_imported_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_imported_contacts (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_imported_contacts); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_imported_contacts (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_imported_contacts (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.importedContacts", text_len)) { *R = tstrdup ("contacts.importedContacts"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_link (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_link); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_link (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_link); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_link (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.link", text_len)) { *R = tstrdup ("contacts.link"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_contacts_suggested (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_suggested); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_suggested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_contacts_suggested (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_suggested); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_contacts_suggested (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_contacts_suggested (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "contacts.suggested", text_len)) { *R = tstrdup ("contacts.suggested"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_geochats_located (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_located); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_located (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_geochats_located (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_located); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_located (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_geochats_located (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "geochats.located", text_len)) { *R = tstrdup ("geochats.located"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_geochats_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_messages_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_geochats_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_messages_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_geochats_messages (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "geochats.messages", text_len)) { *R = tstrdup ("geochats.messages"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "geochats.messagesSlice", text_len)) { *R = tstrdup ("geochats.messagesSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_geochats_stated_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_stated_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_stated_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_geochats_stated_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_stated_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_geochats_stated_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_geochats_stated_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "geochats.statedMessage", text_len)) { *R = tstrdup ("geochats.statedMessage"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_help_app_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_app_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_app_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_no_app_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_help_app_update (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_app_update); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_app_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_no_app_update (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_help_app_update (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "help.appUpdate", text_len)) { *R = tstrdup ("help.appUpdate"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "help.noAppUpdate", text_len)) { *R = tstrdup ("help.noAppUpdate"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_help_invite_text (struct paramed_type *T) { + if (autocomplete_constructor_help_invite_text (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_help_invite_text (struct paramed_type *T) { + if (autocomplete_constructor_help_invite_text (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_help_invite_text (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "help.inviteText", text_len)) { *R = tstrdup ("help.inviteText"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_help_support (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_support); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_support (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_help_support (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_support); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_help_support (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_help_support (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "help.support", text_len)) { *R = tstrdup ("help.support"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_affected_history (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_history); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_affected_history (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_affected_history (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_history); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_affected_history (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_affected_history (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.affectedHistory", text_len)) { *R = tstrdup ("messages.affectedHistory"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_affected_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_affected_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_affected_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_affected_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_affected_messages (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.affectedMessages", text_len)) { *R = tstrdup ("messages.affectedMessages"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_all_stickers (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_all_stickers); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_all_stickers (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_all_stickers (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_all_stickers); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_all_stickers (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_all_stickers (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.allStickersNotModified", text_len)) { *R = tstrdup ("messages.allStickersNotModified"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.allStickers", text_len)) { *R = tstrdup ("messages.allStickers"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_chat_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_chat_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_chat_full (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat_full); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_chat_full (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_chat_full (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.chatFull", text_len)) { *R = tstrdup ("messages.chatFull"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_chats (struct paramed_type *T) { + if (autocomplete_constructor_messages_chats (T) < 0) { return -1; } + return 0; +} +int autocomplete_type_bare_messages_chats (struct paramed_type *T) { + if (autocomplete_constructor_messages_chats (T) < 0) { return -1; } + return 0; +} +int do_autocomplete_type_messages_chats (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.chats", text_len)) { *R = tstrdup ("messages.chats"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_dh_config (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dh_config); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dh_config_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dh_config (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_dh_config (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dh_config); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dh_config_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dh_config (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_dh_config (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.dhConfigNotModified", text_len)) { *R = tstrdup ("messages.dhConfigNotModified"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.dhConfig", text_len)) { *R = tstrdup ("messages.dhConfig"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_dialogs (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dialogs); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dialogs (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dialogs_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_dialogs (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dialogs); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dialogs (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_dialogs_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_dialogs (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.dialogs", text_len)) { *R = tstrdup ("messages.dialogs"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.dialogsSlice", text_len)) { *R = tstrdup ("messages.dialogsSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_message_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.messageEmpty", text_len)) { *R = tstrdup ("messages.messageEmpty"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_messages_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_messages (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_messages); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_messages (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_messages_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_messages (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.messages", text_len)) { *R = tstrdup ("messages.messages"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.messagesSlice", text_len)) { *R = tstrdup ("messages.messagesSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_sent_encrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_encrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_sent_encrypted_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_encrypted_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_encrypted_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_encrypted_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_sent_encrypted_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.sentEncryptedMessage", text_len)) { *R = tstrdup ("messages.sentEncryptedMessage"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.sentEncryptedFile", text_len)) { *R = tstrdup ("messages.sentEncryptedFile"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_sent_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_message_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_sent_message (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_message); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_message (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sent_message_link (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_sent_message (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.sentMessage", text_len)) { *R = tstrdup ("messages.sentMessage"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.sentMessageLink", text_len)) { *R = tstrdup ("messages.sentMessageLink"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sticker_set (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_sticker_set (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sticker_set); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_sticker_set (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_sticker_set (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.stickerSet", text_len)) { *R = tstrdup ("messages.stickerSet"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_messages_stickers (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stickers); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_stickers_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_stickers (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_messages_stickers (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stickers); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_stickers_not_modified (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_messages_stickers (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_messages_stickers (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "messages.stickersNotModified", text_len)) { *R = tstrdup ("messages.stickersNotModified"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "messages.stickers", text_len)) { *R = tstrdup ("messages.stickers"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_photos_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_photos_photo (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photo); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photo (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_photos_photo (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "photos.photo", text_len)) { *R = tstrdup ("photos.photo"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_photos_photos (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photos); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photos (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photos_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_photos_photos (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photos); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photos (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_photos_photos_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_photos_photos (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "photos.photos", text_len)) { *R = tstrdup ("photos.photos"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "photos.photosSlice", text_len)) { *R = tstrdup ("photos.photosSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_storage_file_type (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_storage_file_type); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_unknown (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_jpeg (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_gif (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_png (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_pdf (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mp3 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mov (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_partial (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mp4 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_webp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_storage_file_type (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_storage_file_type); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_unknown (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_jpeg (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_gif (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_png (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_pdf (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mp3 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mov (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_partial (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_mp4 (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_storage_file_webp (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_storage_file_type (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "storage.fileUnknown", text_len)) { *R = tstrdup ("storage.fileUnknown"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "storage.fileJpeg", text_len)) { *R = tstrdup ("storage.fileJpeg"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "storage.fileGif", text_len)) { *R = tstrdup ("storage.fileGif"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "storage.filePng", text_len)) { *R = tstrdup ("storage.filePng"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "storage.filePdf", text_len)) { *R = tstrdup ("storage.filePdf"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "storage.fileMp3", text_len)) { *R = tstrdup ("storage.fileMp3"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "storage.fileMov", text_len)) { *R = tstrdup ("storage.fileMov"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "storage.filePartial", text_len)) { *R = tstrdup ("storage.filePartial"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "storage.fileMp4", text_len)) { *R = tstrdup ("storage.fileMp4"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "storage.fileWebp", text_len)) { *R = tstrdup ("storage.fileWebp"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_updates_difference (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_difference); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_updates_difference (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_difference); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference_empty (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_difference_slice (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_updates_difference (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "updates.differenceEmpty", text_len)) { *R = tstrdup ("updates.differenceEmpty"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "updates.difference", text_len)) { *R = tstrdup ("updates.difference"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "updates.differenceSlice", text_len)) { *R = tstrdup ("updates.differenceSlice"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_updates_state (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_state); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_state (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_updates_state (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_state); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_updates_state (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_updates_state (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "updates.state", text_len)) { *R = tstrdup ("updates.state"); return index; } else { index ++; }} + *R = 0; + return 0; +} +int autocomplete_type_upload_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_upload_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_upload_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int autocomplete_type_bare_upload_file (struct paramed_type *T) { + expect_token_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_upload_file); return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) { + local_next_token (); + if (autocomplete_constructor_upload_file (T) < 0) { return -1; } + expect_token_autocomplete (")", 1); + return 0; + } + return -1; +} +int do_autocomplete_type_upload_file (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "upload.file", text_len)) { *R = tstrdup ("upload.file"); return index; } else { index ++; }} + *R = 0; + return 0; +} +struct paramed_type *autocomplete_function_account_change_phone (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) { + set_autocomplete_string ("phone_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_check_username (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_delete_account (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "reason", cur_token_real_len)) { + set_autocomplete_string ("reason"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "reason", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_account_t_t_l (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_authorizations (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1250abde, .id = "account.Authorizations", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_notify_settings (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_notify_peer (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_password (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xeac2a804, .id = "account.Password", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_password_settings (void) { + if (cur_token_len == -3 && cur_token_real_len <= 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_real_len)) { + set_autocomplete_string ("current_password_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 21 && !memcmp (cur_token, "current_password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb7b72ab3, .id = "account.PasswordSettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_privacy (void) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_privacy_key (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_get_wall_papers (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xafa14973, .id = "WallPaper", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_register_device (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_real_len)) { + set_autocomplete_string ("token_type"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "token_type", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_real_len)) { + set_autocomplete_string ("token"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "token", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) { + set_autocomplete_string ("device_model"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) { + set_autocomplete_string ("system_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) { + set_autocomplete_string ("app_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_sandbox", cur_token_real_len)) { + set_autocomplete_string ("app_sandbox"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_sandbox", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field6) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) { + set_autocomplete_string ("lang_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field7) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_reset_authorization (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_reset_notify_settings (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_send_change_phone_code (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa4f58c4c, .id = "account.SentChangePhoneCode", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_set_account_t_t_l (void) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) { + set_autocomplete_string ("ttl"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_account_days_t_t_l (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_set_privacy (void) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) { + set_autocomplete_string ("key"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_privacy_key (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) { + set_autocomplete_string ("rules"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4b815163, .id = "InputPrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_unregister_device (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_real_len)) { + set_autocomplete_string ("token_type"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "token_type", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_real_len)) { + set_autocomplete_string ("token"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "token", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_device_locked (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "period", cur_token_real_len)) { + set_autocomplete_string ("period"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "period", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_notify_settings (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_notify_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "settings", cur_token_real_len)) { + set_autocomplete_string ("settings"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "settings", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x46a2ce98, .id = "InputPeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer_notify_settings (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_password_settings (void) { + if (cur_token_len == -3 && cur_token_real_len <= 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_real_len)) { + set_autocomplete_string ("current_password_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 21 && !memcmp (cur_token, "current_password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_settings", cur_token_real_len)) { + set_autocomplete_string ("new_settings"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_settings", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbcfc532c, .id = "account.PasswordInputSettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_account_password_input_settings (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_profile (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_status (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "offline", cur_token_real_len)) { + set_autocomplete_string ("offline"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "offline", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_account_update_username (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_bind_temp_auth_key (void) { + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "perm_auth_key_id", cur_token_real_len)) { + set_autocomplete_string ("perm_auth_key_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "perm_auth_key_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "expires_at", cur_token_real_len)) { + set_autocomplete_string ("expires_at"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "expires_at", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "encrypted_message", cur_token_real_len)) { + set_autocomplete_string ("encrypted_message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "encrypted_message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_check_password (void) { + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "password_hash", cur_token_real_len)) { + set_autocomplete_string ("password_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_check_phone (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x811ea28e, .id = "auth.CheckedPhone", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_export_authorization (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) { + set_autocomplete_string ("dc_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xdf969c2d, .id = "auth.ExportedAuthorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_import_authorization (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_import_bot_authorization (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) { + set_autocomplete_string ("api_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_real_len)) { + set_autocomplete_string ("api_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "api_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "bot_auth_token", cur_token_real_len)) { + set_autocomplete_string ("bot_auth_token"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "bot_auth_token", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_log_out (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_recover_password (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_real_len)) { + set_autocomplete_string ("code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_request_password_recovery (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x137948a5, .id = "auth.PasswordRecovery", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_reset_authorizations (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_send_call (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_send_code (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "sms_type", cur_token_real_len)) { + set_autocomplete_string ("sms_type"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "sms_type", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) { + set_autocomplete_string ("api_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_real_len)) { + set_autocomplete_string ("api_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "api_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) { + set_autocomplete_string ("lang_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0cc8bc16, .id = "auth.SentCode", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_send_invites (void) { + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "phone_numbers", cur_token_real_len)) { + set_autocomplete_string ("phone_numbers"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "phone_numbers", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_send_sms (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_sign_in (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) { + set_autocomplete_string ("phone_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_auth_sign_up (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) { + set_autocomplete_string ("phone_number"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) { + set_autocomplete_string ("phone_code_hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) { + set_autocomplete_string ("phone_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) { + set_autocomplete_string ("first_name"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) { + set_autocomplete_string ("last_name"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_block (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_delete_contact (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_delete_contacts (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_export_card (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_get_blocked (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8c1b8fb4, .id = "contacts.Blocked", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_get_contacts (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd8c02560, .id = "contacts.Contacts", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_get_statuses (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd3680c61, .id = "ContactStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_get_suggested (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5649dcc5, .id = "contacts.Suggested", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_import_card (void) { + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "export_card", cur_token_real_len)) { + set_autocomplete_string ("export_card"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "export_card", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_import_contacts (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) { + set_autocomplete_string ("contacts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf392b7f4, .id = "InputContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "replace", cur_token_real_len)) { + set_autocomplete_string ("replace"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "replace", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xad524315, .id = "contacts.ImportedContacts", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_resolve_username (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) { + set_autocomplete_string ("username"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_search (void) { + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0566000e, .id = "contacts.Found", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_contacts_unblock (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_checkin (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_create_geo_chat (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) { + set_autocomplete_string ("geo_point"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_point (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_real_len)) { + set_autocomplete_string ("venue"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "venue", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_edit_chat_photo (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_chat_photo (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_edit_chat_title (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) { + set_autocomplete_string ("address"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_get_full_chat (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_get_history (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_get_located (void) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) { + set_autocomplete_string ("geo_point"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_point (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "radius", cur_token_real_len)) { + set_autocomplete_string ("radius"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "radius", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x48feb267, .id = "geochats.Located", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_get_recents (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_search (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_real_len)) { + set_autocomplete_string ("filter"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "filter", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x80895ae0, .id = "MessagesFilter", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_messages_filter (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_real_len)) { + set_autocomplete_string ("min_date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "min_date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) { + set_autocomplete_string ("max_date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_send_media (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_media (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_send_message (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_geochats_set_typing (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_real_len)) { + set_autocomplete_string ("typing"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "typing", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_get_app_update (void) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) { + set_autocomplete_string ("device_model"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) { + set_autocomplete_string ("system_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) { + set_autocomplete_string ("app_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) { + set_autocomplete_string ("lang_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ddd9627, .id = "help.AppUpdate", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_get_config (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e32b894, .id = "Config", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_get_invite_text (void) { + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) { + set_autocomplete_string ("lang_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x18cb9f78, .id = "help.InviteText", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_get_nearest_dc (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8e1a1775, .id = "NearestDc", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_get_support (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17c6b5f6, .id = "help.Support", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_help_save_app_log (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "events", cur_token_real_len)) { + set_autocomplete_string ("events"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "events", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x770656a8, .id = "InputAppEvent", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_init_connection (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) { + set_autocomplete_string ("api_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) { + set_autocomplete_string ("device_model"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) { + set_autocomplete_string ("system_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) { + set_autocomplete_string ("app_version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field5) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) { + set_autocomplete_string ("lang_code"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) { + set_autocomplete_string ("query"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field7 = autocomplete_function_any (); + if (!field7) { return 0; } + add_var_to_be_freed (field7); + if (ODDP(field7)) { return 0; } + struct paramed_type *var0 = field7; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_invoke_after_msg (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "msg_id", cur_token_real_len)) { + set_autocomplete_string ("msg_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) { + set_autocomplete_string ("query"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = autocomplete_function_any (); + if (!field3) { return 0; } + add_var_to_be_freed (field3); + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_invoke_after_msgs (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "msg_ids", cur_token_real_len)) { + set_autocomplete_string ("msg_ids"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "msg_ids", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) { + set_autocomplete_string ("query"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = autocomplete_function_any (); + if (!field3) { return 0; } + add_var_to_be_freed (field3); + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_invoke_with_layer (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) { + set_autocomplete_string ("layer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) { + set_autocomplete_string ("query"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = autocomplete_function_any (); + if (!field3) { return 0; } + add_var_to_be_freed (field3); + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_invoke_without_updates (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) { + set_autocomplete_string ("query"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = autocomplete_function_any (); + if (!field2) { return 0; } + add_var_to_be_freed (field2); + if (ODDP(field2)) { return 0; } + struct paramed_type *var0 = field2; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_accept_encryption (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) { + set_autocomplete_string ("g_b"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("key_fingerprint"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_add_chat_user (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "fwd_limit", cur_token_real_len)) { + set_autocomplete_string ("fwd_limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "fwd_limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_check_chat_invite (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x94f910b1, .id = "ChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_create_chat (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) { + set_autocomplete_string ("users"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_delete_chat_user (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_delete_history (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_delete_messages (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x84d19185, .id = "messages.AffectedMessages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_discard_encryption (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_edit_chat_photo (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) { + set_autocomplete_string ("photo"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_chat_photo (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_edit_chat_title (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) { + set_autocomplete_string ("title"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_export_chat_invite (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_forward_message (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_forward_messages (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_all_stickers (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb485502f, .id = "messages.AllStickers", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_chats (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x64ff9fd5, .id = "messages.Chats", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_dh_config (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) { + set_autocomplete_string ("version"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "random_length", cur_token_real_len)) { + set_autocomplete_string ("random_length"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "random_length", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xecc058e8, .id = "messages.DhConfig", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_dialogs (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x645af8b3, .id = "messages.Dialogs", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_full_chat (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_history (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_messages (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_sticker_set (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) { + set_autocomplete_string ("stickerset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb60a24a6, .id = "messages.StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_stickers (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_real_len)) { + set_autocomplete_string ("emoticon"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "emoticon", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bfa5710, .id = "messages.Stickers", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_get_web_page_preview (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_import_chat_invite (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) { + set_autocomplete_string ("hash"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_install_sticker_set (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) { + set_autocomplete_string ("stickerset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_read_encrypted_history (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) { + set_autocomplete_string ("max_date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_read_history (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_read_message_contents (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x84d19185, .id = "messages.AffectedMessages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_received_messages (void) { + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa384b779, .id = "ReceivedNotifyMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_received_queue (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "max_qts", cur_token_real_len)) { + set_autocomplete_string ("max_qts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "max_qts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_request_encryption (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) { + set_autocomplete_string ("g_a"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_search (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_real_len)) { + set_autocomplete_string ("filter"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "filter", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x80895ae0, .id = "MessagesFilter", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_messages_filter (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_real_len)) { + set_autocomplete_string ("min_date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "min_date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) { + set_autocomplete_string ("max_date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field5) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field6) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field7) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field8) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_broadcast (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) { + set_autocomplete_string ("contacts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_media (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_encrypted (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) { + set_autocomplete_string ("data"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_encrypted_file (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) { + set_autocomplete_string ("data"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0b5c064f, .id = "InputEncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_file (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_encrypted_service (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) { + set_autocomplete_string ("data"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_media (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + if (cur_token_len < 0) { return 0; } + if (!is_int ()) { return 0;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field2) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) { + set_autocomplete_string ("reply_to_msg_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + } + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) { + set_autocomplete_string ("media"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_media (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field5) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) { + set_autocomplete_string ("reply_markup"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_reply_markup (field6) < 0) { return 0;} + } + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_send_message (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) { + set_autocomplete_string ("flags"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + if (cur_token_len < 0) { return 0; } + if (!is_int ()) { return 0;} + struct paramed_type *var0 = INT2PTR (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field2) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_real_len)) { + set_autocomplete_string ("reply_to_msg_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + } + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) { + set_autocomplete_string ("message"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field5) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_real_len)) { + set_autocomplete_string ("reply_markup"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_reply_markup (field6) < 0) { return 0;} + } + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x799ce190, .id = "messages.SentMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_set_encrypted_typing (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_real_len)) { + set_autocomplete_string ("typing"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "typing", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_set_typing (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) { + set_autocomplete_string ("peer"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) { + set_autocomplete_string ("action"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_send_message_action (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_start_bot (void) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "bot", cur_token_real_len)) { + set_autocomplete_string ("bot"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "bot", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) { + set_autocomplete_string ("chat_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) { + set_autocomplete_string ("random_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "start_param", cur_token_real_len)) { + set_autocomplete_string ("start_param"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "start_param", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_messages_uninstall_sticker_set (void) { + if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_real_len)) { + set_autocomplete_string ("stickerset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_photos_delete_photos (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_photos_get_user_photos (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) { + set_autocomplete_string ("user_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) { + set_autocomplete_string ("max_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x98cf75f1, .id = "photos.Photos", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_photos_update_profile_photo (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) { + set_autocomplete_string ("crop"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo_crop (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_photos_upload_profile_photo (void) { + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) { + set_autocomplete_string ("file"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) { + set_autocomplete_string ("caption"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) { + set_autocomplete_string ("geo_point"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_geo_point (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) { + set_autocomplete_string ("crop"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_photo_crop (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x20212ca8, .id = "photos.Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_req_d_h_params (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) { + set_autocomplete_string ("p"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) { + set_autocomplete_string ("q"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "public_key_fingerprint", cur_token_real_len)) { + set_autocomplete_string ("public_key_fingerprint"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "public_key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field5) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_real_len)) { + set_autocomplete_string ("encrypted_data"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "encrypted_data", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field6) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa9230301, .id = "Server_DH_Params", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_req_pq (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x05162463, .id = "ResPQ", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_set_client_d_h_params (void) { + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) { + set_autocomplete_string ("nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) { + set_autocomplete_string ("server_nonce"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int128 (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_real_len)) { + set_autocomplete_string ("encrypted_data"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "encrypted_data", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xdb8a468f, .id = "Set_client_DH_params_answer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_updates_get_difference (void) { + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) { + set_autocomplete_string ("pts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) { + set_autocomplete_string ("date"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) { + set_autocomplete_string ("qts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf57a2419, .id = "updates.Difference", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_updates_get_state (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_upload_get_file (void) { + if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) { + set_autocomplete_string ("location"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe6daa38b, .id = "InputFileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_file_location (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) { + set_autocomplete_string ("offset"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) { + set_autocomplete_string ("limit"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x096a18d5, .id = "upload.File", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_upload_save_big_file_part (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_real_len)) { + set_autocomplete_string ("file_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "file_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_real_len)) { + set_autocomplete_string ("file_part"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_part", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "file_total_parts", cur_token_real_len)) { + set_autocomplete_string ("file_total_parts"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "file_total_parts", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_upload_save_file_part (void) { + if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_real_len)) { + set_autocomplete_string ("file_id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "file_id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_real_len)) { + set_autocomplete_string ("file_part"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_part", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) { + set_autocomplete_string ("bytes"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_users_get_full_user (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (autocomplete_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5a89ac5b, .id = "UserFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *autocomplete_function_users_get_users (void) { + if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) { + set_autocomplete_string ("id"); + return 0; + } + if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr_autocomplete (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (autocomplete_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +int autocomplete_type_any (struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return autocomplete_type_account_days_t_t_l (T); + case 0x472f5020: return autocomplete_type_bare_account_days_t_t_l (T); + case 0x9fc5ec4e: return autocomplete_type_audio (T); + case 0x603a13b1: return autocomplete_type_bare_audio (T); + case 0x7bf2e6f6: return autocomplete_type_authorization (T); + case 0x840d1909: return autocomplete_type_bare_authorization (T); + case 0x250be282: return autocomplete_type_bool (T); + case 0xdaf41d7d: return autocomplete_type_bare_bool (T); + case 0x75e7ea6c: return autocomplete_type_bot_command (T); + case 0x8a181593: return autocomplete_type_bare_bot_command (T); + case 0xb2e16f93: return autocomplete_type_bot_info (T); + case 0x4d1e906c: return autocomplete_type_bare_bot_info (T); + case 0x0ee1379f: return autocomplete_type_bytes (T); + case 0xf11ec860: return autocomplete_type_bare_bytes (T); + case 0x7bd865dc: return autocomplete_type_chat (T); + case 0x84279a23: return autocomplete_type_bare_chat (T); + case 0x2e02a614: return autocomplete_type_chat_full (T); + case 0xd1fd59eb: return autocomplete_type_bare_chat_full (T); + case 0x94f910b1: return autocomplete_type_chat_invite (T); + case 0x6b06ef4e: return autocomplete_type_bare_chat_invite (T); + case 0x3631cf4c: return autocomplete_type_chat_located (T); + case 0xc9ce30b3: return autocomplete_type_bare_chat_located (T); + case 0xc8d7493e: return autocomplete_type_chat_participant (T); + case 0x3728b6c1: return autocomplete_type_bare_chat_participant (T); + case 0x77930f9f: return autocomplete_type_chat_participants (T); + case 0x886cf060: return autocomplete_type_bare_chat_participants (T); + case 0x56922676: return autocomplete_type_chat_photo (T); + case 0xa96dd989: return autocomplete_type_bare_chat_photo (T); + case 0x6643b654: return autocomplete_type_client_d_h_inner_data (T); + case 0x99bc49ab: return autocomplete_type_bare_client_d_h_inner_data (T); + case 0x4e32b894: return autocomplete_type_config (T); + case 0xb1cd476b: return autocomplete_type_bare_config (T); + case 0xf911c994: return autocomplete_type_contact (T); + case 0x06ee366b: return autocomplete_type_bare_contact (T); + case 0x561bc879: return autocomplete_type_contact_blocked (T); + case 0xa9e43786: return autocomplete_type_bare_contact_blocked (T); + case 0xea879f95: return autocomplete_type_contact_found (T); + case 0x1578606a: return autocomplete_type_bare_contact_found (T); + case 0x522fbc63: return autocomplete_type_contact_link (T); + case 0xadd0439c: return autocomplete_type_bare_contact_link (T); + case 0xd3680c61: return autocomplete_type_contact_status (T); + case 0x2c97f39e: return autocomplete_type_bare_contact_status (T); + case 0x3de191a1: return autocomplete_type_contact_suggested (T); + case 0xc21e6e5e: return autocomplete_type_bare_contact_suggested (T); + case 0x2b1a62f0: return autocomplete_type_dc_option (T); + case 0xd4e59d0f: return autocomplete_type_bare_dc_option (T); + case 0x535b7918: return autocomplete_type_decrypted_message (T); + case 0xaca486e7: return autocomplete_type_bare_decrypted_message (T); + case 0x4e0eefde: return autocomplete_type_decrypted_message_action (T); + case 0xb1f11021: return autocomplete_type_bare_decrypted_message_action (T); + case 0x1be31789: return autocomplete_type_decrypted_message_layer (T); + case 0xe41ce876: return autocomplete_type_bare_decrypted_message_layer (T); + case 0x34e0d674: return autocomplete_type_decrypted_message_media (T); + case 0xcb1f298b: return autocomplete_type_bare_decrypted_message_media (T); + case 0xc1dd804a: return autocomplete_type_dialog (T); + case 0x3e227fb5: return autocomplete_type_bare_dialog (T); + case 0xae636f24: return autocomplete_type_disabled_feature (T); + case 0x519c90db: return autocomplete_type_bare_disabled_feature (T); + case 0x51a73418: return autocomplete_type_document (T); + case 0xae58cbe7: return autocomplete_type_bare_document (T); + case 0x97c637a3: return autocomplete_type_document_attribute (T); + case 0x6839c85c: return autocomplete_type_bare_document_attribute (T); + case 0x2210c154: return autocomplete_type_double (T); + case 0xddef3eab: return autocomplete_type_bare_double (T); + case 0xb1718213: return autocomplete_type_encrypted_chat (T); + case 0x4e8e7dec: return autocomplete_type_bare_encrypted_chat (T); + case 0x886fd032: return autocomplete_type_encrypted_file (T); + case 0x77902fcd: return autocomplete_type_bare_encrypted_file (T); + case 0xce6b8a1e: return autocomplete_type_encrypted_message (T); + case 0x319475e1: return autocomplete_type_bare_encrypted_message (T); + case 0xc4b9f9bb: return autocomplete_type_error (T); + case 0x3b460644: return autocomplete_type_bare_error (T); + case 0x95f132d5: return autocomplete_type_exported_chat_invite (T); + case 0x6a0ecd2a: return autocomplete_type_bare_exported_chat_invite (T); + case 0x2f8ffb30: return autocomplete_type_file_location (T); + case 0xd07004cf: return autocomplete_type_bare_file_location (T); + case 0xf67b4034: return autocomplete_type_geo_chat_message (T); + case 0x0984bfcb: return autocomplete_type_bare_geo_chat_message (T); + case 0x315e0a53: return autocomplete_type_geo_point (T); + case 0xcea1f5ac: return autocomplete_type_bare_geo_point (T); + case 0xd0028438: return autocomplete_type_imported_contact (T); + case 0x2ffd7bc7: return autocomplete_type_bare_imported_contact (T); + case 0x770656a8: return autocomplete_type_input_app_event (T); + case 0x88f9a957: return autocomplete_type_bare_input_app_event (T); + case 0xae8e9c7b: return autocomplete_type_input_audio (T); + case 0x51716384: return autocomplete_type_bare_input_audio (T); + case 0x3a60776d: return autocomplete_type_input_chat_photo (T); + case 0xc59f8892: return autocomplete_type_bare_input_chat_photo (T); + case 0xf392b7f4: return autocomplete_type_input_contact (T); + case 0x0c6d480b: return autocomplete_type_bare_input_contact (T); + case 0x6a8963fc: return autocomplete_type_input_document (T); + case 0x95769c03: return autocomplete_type_bare_input_document (T); + case 0xf141b5e1: return autocomplete_type_input_encrypted_chat (T); + case 0x0ebe4a1e: return autocomplete_type_bare_input_encrypted_chat (T); + case 0x0b5c064f: return autocomplete_type_input_encrypted_file (T); + case 0xf4a3f9b0: return autocomplete_type_bare_input_encrypted_file (T); + case 0x0f60f9ca: return autocomplete_type_input_file (T); + case 0xf09f0635: return autocomplete_type_bare_input_file (T); + case 0xe6daa38b: return autocomplete_type_input_file_location (T); + case 0x19255c74: return autocomplete_type_bare_input_file_location (T); + case 0x74d456fa: return autocomplete_type_input_geo_chat (T); + case 0x8b2ba905: return autocomplete_type_bare_input_geo_chat (T); + case 0x17768f1f: return autocomplete_type_input_geo_point (T); + case 0xe88970e0: return autocomplete_type_bare_input_geo_point (T); + case 0xb32c91dd: return autocomplete_type_input_media (T); + case 0x4cd36e22: return autocomplete_type_bare_input_media (T); + case 0x02b6911b: return autocomplete_type_input_notify_peer (T); + case 0xfd496ee4: return autocomplete_type_bare_input_notify_peer (T); + case 0x9e67268d: return autocomplete_type_input_peer (T); + case 0x6198d972: return autocomplete_type_bare_input_peer (T); + case 0x185a48ac: return autocomplete_type_input_peer_notify_events (T); + case 0xe7a5b753: return autocomplete_type_bare_input_peer_notify_events (T); + case 0x46a2ce98: return autocomplete_type_input_peer_notify_settings (T); + case 0xb95d3167: return autocomplete_type_bare_input_peer_notify_settings (T); + case 0xe74279c9: return autocomplete_type_input_photo (T); + case 0x18bd8636: return autocomplete_type_bare_input_photo (T); + case 0x7477e321: return autocomplete_type_input_photo_crop (T); + case 0x8b881cde: return autocomplete_type_bare_input_photo_crop (T); + case 0x4f96cb18: return autocomplete_type_input_privacy_key (T); + case 0xb06934e7: return autocomplete_type_bare_input_privacy_key (T); + case 0x4b815163: return autocomplete_type_input_privacy_rule (T); + case 0xb47eae9c: return autocomplete_type_bare_input_privacy_rule (T); + case 0xe44d415c: return autocomplete_type_input_sticker_set (T); + case 0x1bb2bea3: return autocomplete_type_bare_input_sticker_set (T); + case 0xadfe0c6a: return autocomplete_type_input_user (T); + case 0x5201f395: return autocomplete_type_bare_input_user (T); + case 0xbb5f7a27: return autocomplete_type_input_video (T); + case 0x44a085d8: return autocomplete_type_bare_input_video (T); + case 0xa8509bda: return autocomplete_type_int (T); + case 0x57af6425: return autocomplete_type_bare_int (T); + case 0x7d36c439: return autocomplete_type_int128 (T); + case 0x82c93bc6: return autocomplete_type_bare_int128 (T); + case 0xf2c798b3: return autocomplete_type_int256 (T); + case 0x0d38674c: return autocomplete_type_bare_int256 (T); + case 0xa2fa4880: return autocomplete_type_keyboard_button (T); + case 0x5d05b77f: return autocomplete_type_bare_keyboard_button (T); + case 0x77608b83: return autocomplete_type_keyboard_button_row (T); + case 0x889f747c: return autocomplete_type_bare_keyboard_button_row (T); + case 0x22076cba: return autocomplete_type_long (T); + case 0xddf89345: return autocomplete_type_bare_long (T); + case 0x5d652a7f: return autocomplete_type_message (T); + case 0xa29ad580: return autocomplete_type_bare_message (T); + case 0x383415fa: return autocomplete_type_message_action (T); + case 0xc7cbea05: return autocomplete_type_bare_message_action (T); + case 0x95f2471a: return autocomplete_type_message_media (T); + case 0x6a0db8e5: return autocomplete_type_bare_message_media (T); + case 0x80895ae0: return autocomplete_type_messages_filter (T); + case 0x7f76a51f: return autocomplete_type_bare_messages_filter (T); + case 0x8e1a1775: return autocomplete_type_nearest_dc (T); + case 0x71e5e88a: return autocomplete_type_bare_nearest_dc (T); + case 0x9fcb8237: return autocomplete_type_notify_peer (T); + case 0x60347dc8: return autocomplete_type_bare_notify_peer (T); + case 0x56730bcc: return autocomplete_type_null (T); + case 0xa98cf433: return autocomplete_type_bare_null (T); + case 0xbfa3de38: return autocomplete_type_p_q_inner_data (T); + case 0x405c21c7: return autocomplete_type_bare_p_q_inner_data (T); + case 0x276159d6: return autocomplete_type_peer (T); + case 0xd89ea629: return autocomplete_type_bare_peer (T); + case 0xc0c8d13b: return autocomplete_type_peer_notify_events (T); + case 0x3f372ec4: return autocomplete_type_bare_peer_notify_events (T); + case 0xfdf894fc: return autocomplete_type_peer_notify_settings (T); + case 0x02076b03: return autocomplete_type_bare_peer_notify_settings (T); + case 0xc207550a: return autocomplete_type_photo (T); + case 0x3df8aaf5: return autocomplete_type_bare_photo (T); + case 0x900f60dd: return autocomplete_type_photo_size (T); + case 0x6ff09f22: return autocomplete_type_bare_photo_size (T); + case 0xbc2eab30: return autocomplete_type_privacy_key (T); + case 0x43d154cf: return autocomplete_type_bare_privacy_key (T); + case 0xa8638aec: return autocomplete_type_privacy_rule (T); + case 0x579c7513: return autocomplete_type_bare_privacy_rule (T); + case 0xa384b779: return autocomplete_type_received_notify_message (T); + case 0x5c7b4886: return autocomplete_type_bare_received_notify_message (T); + case 0x612ca4a9: return autocomplete_type_reply_markup (T); + case 0x9ed35b56: return autocomplete_type_bare_reply_markup (T); + case 0x05162463: return autocomplete_type_res_p_q (T); + case 0xfae9db9c: return autocomplete_type_bare_res_p_q (T); + case 0x70541c7e: return autocomplete_type_send_message_action (T); + case 0x8fabe381: return autocomplete_type_bare_send_message_action (T); + case 0xa9230301: return autocomplete_type_server_d_h_params (T); + case 0x56dcfcfe: return autocomplete_type_bare_server_d_h_params (T); + case 0xb5890dba: return autocomplete_type_server_d_h_inner_data (T); + case 0x4a76f245: return autocomplete_type_bare_server_d_h_inner_data (T); + case 0xdb8a468f: return autocomplete_type_set_client_d_h_params_answer (T); + case 0x2475b970: return autocomplete_type_bare_set_client_d_h_params_answer (T); + case 0x12b299d4: return autocomplete_type_sticker_pack (T); + case 0xed4d662b: return autocomplete_type_bare_sticker_pack (T); + case 0xa7a43b17: return autocomplete_type_sticker_set (T); + case 0x585bc4e8: return autocomplete_type_bare_sticker_set (T); + case 0xb5286e24: return autocomplete_type_string (T); + case 0x4ad791db: return autocomplete_type_bare_string (T); + case 0x2e02b27e: return autocomplete_type_update (T); + case 0xd1fd4d81: return autocomplete_type_bare_update (T); + case 0x22499d27: return autocomplete_type_updates (T); + case 0xddb662d8: return autocomplete_type_bare_updates (T); + case 0x02e6c0c8: return autocomplete_type_user (T); + case 0xfd193f37: return autocomplete_type_bare_user (T); + case 0x5a89ac5b: return autocomplete_type_user_full (T); + case 0xa57653a4: return autocomplete_type_bare_user_full (T); + case 0x9a486229: return autocomplete_type_user_profile_photo (T); + case 0x65b79dd6: return autocomplete_type_bare_user_profile_photo (T); + case 0x76de9570: return autocomplete_type_user_status (T); + case 0x89216a8f: return autocomplete_type_bare_user_status (T); + case 0x1cb5c415: return autocomplete_type_vector (T); + case 0xe34a3bea: return autocomplete_type_bare_vector (T); + case 0x1716b174: return autocomplete_type_video (T); + case 0xe8e94e8b: return autocomplete_type_bare_video (T); + case 0xafa14973: return autocomplete_type_wall_paper (T); + case 0x505eb68c: return autocomplete_type_bare_wall_paper (T); + case 0x8d8c0d41: return autocomplete_type_web_page (T); + case 0x7273f2be: return autocomplete_type_bare_web_page (T); + case 0x1250abde: return autocomplete_type_account_authorizations (T); + case 0xedaf5421: return autocomplete_type_bare_account_authorizations (T); + case 0xeac2a804: return autocomplete_type_account_password (T); + case 0x153d57fb: return autocomplete_type_bare_account_password (T); + case 0xbcfc532c: return autocomplete_type_account_password_input_settings (T); + case 0x4303acd3: return autocomplete_type_bare_account_password_input_settings (T); + case 0xb7b72ab3: return autocomplete_type_account_password_settings (T); + case 0x4848d54c: return autocomplete_type_bare_account_password_settings (T); + case 0x554abb6f: return autocomplete_type_account_privacy_rules (T); + case 0xaab54490: return autocomplete_type_bare_account_privacy_rules (T); + case 0xa4f58c4c: return autocomplete_type_account_sent_change_phone_code (T); + case 0x5b0a73b3: return autocomplete_type_bare_account_sent_change_phone_code (T); + case 0xff036af1: return autocomplete_type_auth_authorization (T); + case 0x00fc950e: return autocomplete_type_bare_auth_authorization (T); + case 0x811ea28e: return autocomplete_type_auth_checked_phone (T); + case 0x7ee15d71: return autocomplete_type_bare_auth_checked_phone (T); + case 0xdf969c2d: return autocomplete_type_auth_exported_authorization (T); + case 0x206963d2: return autocomplete_type_bare_auth_exported_authorization (T); + case 0x137948a5: return autocomplete_type_auth_password_recovery (T); + case 0xec86b75a: return autocomplete_type_bare_auth_password_recovery (T); + case 0x0cc8bc16: return autocomplete_type_auth_sent_code (T); + case 0xf33743e9: return autocomplete_type_bare_auth_sent_code (T); + case 0x0377168f: return autocomplete_type_binlog_encr_key (T); + case 0xfc88e970: return autocomplete_type_bare_binlog_encr_key (T); + case 0x66ff03a6: return autocomplete_type_binlog_update (T); + case 0x9900fc59: return autocomplete_type_bare_binlog_update (T); + case 0x8c1b8fb4: return autocomplete_type_contacts_blocked (T); + case 0x73e4704b: return autocomplete_type_bare_contacts_blocked (T); + case 0xd8c02560: return autocomplete_type_contacts_contacts (T); + case 0x273fda9f: return autocomplete_type_bare_contacts_contacts (T); + case 0x0566000e: return autocomplete_type_contacts_found (T); + case 0xfa99fff1: return autocomplete_type_bare_contacts_found (T); + case 0xad524315: return autocomplete_type_contacts_imported_contacts (T); + case 0x52adbcea: return autocomplete_type_bare_contacts_imported_contacts (T); + case 0x3ace484c: return autocomplete_type_contacts_link (T); + case 0xc531b7b3: return autocomplete_type_bare_contacts_link (T); + case 0x5649dcc5: return autocomplete_type_contacts_suggested (T); + case 0xa9b6233a: return autocomplete_type_bare_contacts_suggested (T); + case 0x48feb267: return autocomplete_type_geochats_located (T); + case 0xb7014d98: return autocomplete_type_bare_geochats_located (T); + case 0x6d0a0e59: return autocomplete_type_geochats_messages (T); + case 0x92f5f1a6: return autocomplete_type_bare_geochats_messages (T); + case 0x17b1578b: return autocomplete_type_geochats_stated_message (T); + case 0xe84ea874: return autocomplete_type_bare_geochats_stated_message (T); + case 0x4ddd9627: return autocomplete_type_help_app_update (T); + case 0xb22269d8: return autocomplete_type_bare_help_app_update (T); + case 0x18cb9f78: return autocomplete_type_help_invite_text (T); + case 0xe7346087: return autocomplete_type_bare_help_invite_text (T); + case 0x17c6b5f6: return autocomplete_type_help_support (T); + case 0xe8394a09: return autocomplete_type_bare_help_support (T); + case 0xb45c69d1: return autocomplete_type_messages_affected_history (T); + case 0x4ba3962e: return autocomplete_type_bare_messages_affected_history (T); + case 0x84d19185: return autocomplete_type_messages_affected_messages (T); + case 0x7b2e6e7a: return autocomplete_type_bare_messages_affected_messages (T); + case 0xb485502f: return autocomplete_type_messages_all_stickers (T); + case 0x4b7aafd0: return autocomplete_type_bare_messages_all_stickers (T); + case 0xe5d7d19c: return autocomplete_type_messages_chat_full (T); + case 0x1a282e63: return autocomplete_type_bare_messages_chat_full (T); + case 0x64ff9fd5: return autocomplete_type_messages_chats (T); + case 0x9b00602a: return autocomplete_type_bare_messages_chats (T); + case 0xecc058e8: return autocomplete_type_messages_dh_config (T); + case 0x133fa717: return autocomplete_type_bare_messages_dh_config (T); + case 0x645af8b3: return autocomplete_type_messages_dialogs (T); + case 0x9ba5074c: return autocomplete_type_bare_messages_dialogs (T); + case 0x3f4e0648: return autocomplete_type_messages_message (T); + case 0xc0b1f9b7: return autocomplete_type_bare_messages_message (T); + case 0x8735e464: return autocomplete_type_messages_messages (T); + case 0x78ca1b9b: return autocomplete_type_bare_messages_messages (T); + case 0xc29c7607: return autocomplete_type_messages_sent_encrypted_message (T); + case 0x3d6389f8: return autocomplete_type_bare_messages_sent_encrypted_message (T); + case 0x799ce190: return autocomplete_type_messages_sent_message (T); + case 0x86631e6f: return autocomplete_type_bare_messages_sent_message (T); + case 0xb60a24a6: return autocomplete_type_messages_sticker_set (T); + case 0x49f5db59: return autocomplete_type_bare_messages_sticker_set (T); + case 0x7bfa5710: return autocomplete_type_messages_stickers (T); + case 0x8405a8ef: return autocomplete_type_bare_messages_stickers (T); + case 0x20212ca8: return autocomplete_type_photos_photo (T); + case 0xdfded357: return autocomplete_type_bare_photos_photo (T); + case 0x98cf75f1: return autocomplete_type_photos_photos (T); + case 0x67308a0e: return autocomplete_type_bare_photos_photos (T); + case 0x3e2838a8: return autocomplete_type_storage_file_type (T); + case 0xc1d7c757: return autocomplete_type_bare_storage_file_type (T); + case 0xf57a2419: return autocomplete_type_updates_difference (T); + case 0x0a85dbe6: return autocomplete_type_bare_updates_difference (T); + case 0xa56c2a3e: return autocomplete_type_updates_state (T); + case 0x5a93d5c1: return autocomplete_type_bare_updates_state (T); + case 0x096a18d5: return autocomplete_type_upload_file (T); + case 0xf695e72a: return autocomplete_type_bare_upload_file (T); + default: return -1; } +} +int do_autocomplete_function (const char *text, int text_len, int index, char **R) { + index ++; + if (index == 0) { if (!strncmp (text, "account.changePhone", text_len)) { *R = tstrdup ("account.changePhone"); return index; } else { index ++; }} + if (index == 1) { if (!strncmp (text, "account.checkUsername", text_len)) { *R = tstrdup ("account.checkUsername"); return index; } else { index ++; }} + if (index == 2) { if (!strncmp (text, "account.deleteAccount", text_len)) { *R = tstrdup ("account.deleteAccount"); return index; } else { index ++; }} + if (index == 3) { if (!strncmp (text, "account.getAccountTTL", text_len)) { *R = tstrdup ("account.getAccountTTL"); return index; } else { index ++; }} + if (index == 4) { if (!strncmp (text, "account.getAuthorizations", text_len)) { *R = tstrdup ("account.getAuthorizations"); return index; } else { index ++; }} + if (index == 5) { if (!strncmp (text, "account.getNotifySettings", text_len)) { *R = tstrdup ("account.getNotifySettings"); return index; } else { index ++; }} + if (index == 6) { if (!strncmp (text, "account.getPassword", text_len)) { *R = tstrdup ("account.getPassword"); return index; } else { index ++; }} + if (index == 7) { if (!strncmp (text, "account.getPasswordSettings", text_len)) { *R = tstrdup ("account.getPasswordSettings"); return index; } else { index ++; }} + if (index == 8) { if (!strncmp (text, "account.getPrivacy", text_len)) { *R = tstrdup ("account.getPrivacy"); return index; } else { index ++; }} + if (index == 9) { if (!strncmp (text, "account.getWallPapers", text_len)) { *R = tstrdup ("account.getWallPapers"); return index; } else { index ++; }} + if (index == 10) { if (!strncmp (text, "account.registerDevice", text_len)) { *R = tstrdup ("account.registerDevice"); return index; } else { index ++; }} + if (index == 11) { if (!strncmp (text, "account.resetAuthorization", text_len)) { *R = tstrdup ("account.resetAuthorization"); return index; } else { index ++; }} + if (index == 12) { if (!strncmp (text, "account.resetNotifySettings", text_len)) { *R = tstrdup ("account.resetNotifySettings"); return index; } else { index ++; }} + if (index == 13) { if (!strncmp (text, "account.sendChangePhoneCode", text_len)) { *R = tstrdup ("account.sendChangePhoneCode"); return index; } else { index ++; }} + if (index == 14) { if (!strncmp (text, "account.setAccountTTL", text_len)) { *R = tstrdup ("account.setAccountTTL"); return index; } else { index ++; }} + if (index == 15) { if (!strncmp (text, "account.setPrivacy", text_len)) { *R = tstrdup ("account.setPrivacy"); return index; } else { index ++; }} + if (index == 16) { if (!strncmp (text, "account.unregisterDevice", text_len)) { *R = tstrdup ("account.unregisterDevice"); return index; } else { index ++; }} + if (index == 17) { if (!strncmp (text, "account.updateDeviceLocked", text_len)) { *R = tstrdup ("account.updateDeviceLocked"); return index; } else { index ++; }} + if (index == 18) { if (!strncmp (text, "account.updateNotifySettings", text_len)) { *R = tstrdup ("account.updateNotifySettings"); return index; } else { index ++; }} + if (index == 19) { if (!strncmp (text, "account.updatePasswordSettings", text_len)) { *R = tstrdup ("account.updatePasswordSettings"); return index; } else { index ++; }} + if (index == 20) { if (!strncmp (text, "account.updateProfile", text_len)) { *R = tstrdup ("account.updateProfile"); return index; } else { index ++; }} + if (index == 21) { if (!strncmp (text, "account.updateStatus", text_len)) { *R = tstrdup ("account.updateStatus"); return index; } else { index ++; }} + if (index == 22) { if (!strncmp (text, "account.updateUsername", text_len)) { *R = tstrdup ("account.updateUsername"); return index; } else { index ++; }} + if (index == 23) { if (!strncmp (text, "auth.bindTempAuthKey", text_len)) { *R = tstrdup ("auth.bindTempAuthKey"); return index; } else { index ++; }} + if (index == 24) { if (!strncmp (text, "auth.checkPassword", text_len)) { *R = tstrdup ("auth.checkPassword"); return index; } else { index ++; }} + if (index == 25) { if (!strncmp (text, "auth.checkPhone", text_len)) { *R = tstrdup ("auth.checkPhone"); return index; } else { index ++; }} + if (index == 26) { if (!strncmp (text, "auth.exportAuthorization", text_len)) { *R = tstrdup ("auth.exportAuthorization"); return index; } else { index ++; }} + if (index == 27) { if (!strncmp (text, "auth.importAuthorization", text_len)) { *R = tstrdup ("auth.importAuthorization"); return index; } else { index ++; }} + if (index == 28) { if (!strncmp (text, "auth.importBotAuthorization", text_len)) { *R = tstrdup ("auth.importBotAuthorization"); return index; } else { index ++; }} + if (index == 29) { if (!strncmp (text, "auth.logOut", text_len)) { *R = tstrdup ("auth.logOut"); return index; } else { index ++; }} + if (index == 30) { if (!strncmp (text, "auth.recoverPassword", text_len)) { *R = tstrdup ("auth.recoverPassword"); return index; } else { index ++; }} + if (index == 31) { if (!strncmp (text, "auth.requestPasswordRecovery", text_len)) { *R = tstrdup ("auth.requestPasswordRecovery"); return index; } else { index ++; }} + if (index == 32) { if (!strncmp (text, "auth.resetAuthorizations", text_len)) { *R = tstrdup ("auth.resetAuthorizations"); return index; } else { index ++; }} + if (index == 33) { if (!strncmp (text, "auth.sendCall", text_len)) { *R = tstrdup ("auth.sendCall"); return index; } else { index ++; }} + if (index == 34) { if (!strncmp (text, "auth.sendCode", text_len)) { *R = tstrdup ("auth.sendCode"); return index; } else { index ++; }} + if (index == 35) { if (!strncmp (text, "auth.sendInvites", text_len)) { *R = tstrdup ("auth.sendInvites"); return index; } else { index ++; }} + if (index == 36) { if (!strncmp (text, "auth.sendSms", text_len)) { *R = tstrdup ("auth.sendSms"); return index; } else { index ++; }} + if (index == 37) { if (!strncmp (text, "auth.signIn", text_len)) { *R = tstrdup ("auth.signIn"); return index; } else { index ++; }} + if (index == 38) { if (!strncmp (text, "auth.signUp", text_len)) { *R = tstrdup ("auth.signUp"); return index; } else { index ++; }} + if (index == 39) { if (!strncmp (text, "contacts.block", text_len)) { *R = tstrdup ("contacts.block"); return index; } else { index ++; }} + if (index == 40) { if (!strncmp (text, "contacts.deleteContact", text_len)) { *R = tstrdup ("contacts.deleteContact"); return index; } else { index ++; }} + if (index == 41) { if (!strncmp (text, "contacts.deleteContacts", text_len)) { *R = tstrdup ("contacts.deleteContacts"); return index; } else { index ++; }} + if (index == 42) { if (!strncmp (text, "contacts.exportCard", text_len)) { *R = tstrdup ("contacts.exportCard"); return index; } else { index ++; }} + if (index == 43) { if (!strncmp (text, "contacts.getBlocked", text_len)) { *R = tstrdup ("contacts.getBlocked"); return index; } else { index ++; }} + if (index == 44) { if (!strncmp (text, "contacts.getContacts", text_len)) { *R = tstrdup ("contacts.getContacts"); return index; } else { index ++; }} + if (index == 45) { if (!strncmp (text, "contacts.getStatuses", text_len)) { *R = tstrdup ("contacts.getStatuses"); return index; } else { index ++; }} + if (index == 46) { if (!strncmp (text, "contacts.getSuggested", text_len)) { *R = tstrdup ("contacts.getSuggested"); return index; } else { index ++; }} + if (index == 47) { if (!strncmp (text, "contacts.importCard", text_len)) { *R = tstrdup ("contacts.importCard"); return index; } else { index ++; }} + if (index == 48) { if (!strncmp (text, "contacts.importContacts", text_len)) { *R = tstrdup ("contacts.importContacts"); return index; } else { index ++; }} + if (index == 49) { if (!strncmp (text, "contacts.resolveUsername", text_len)) { *R = tstrdup ("contacts.resolveUsername"); return index; } else { index ++; }} + if (index == 50) { if (!strncmp (text, "contacts.search", text_len)) { *R = tstrdup ("contacts.search"); return index; } else { index ++; }} + if (index == 51) { if (!strncmp (text, "contacts.unblock", text_len)) { *R = tstrdup ("contacts.unblock"); return index; } else { index ++; }} + if (index == 52) { if (!strncmp (text, "geochats.checkin", text_len)) { *R = tstrdup ("geochats.checkin"); return index; } else { index ++; }} + if (index == 53) { if (!strncmp (text, "geochats.createGeoChat", text_len)) { *R = tstrdup ("geochats.createGeoChat"); return index; } else { index ++; }} + if (index == 54) { if (!strncmp (text, "geochats.editChatPhoto", text_len)) { *R = tstrdup ("geochats.editChatPhoto"); return index; } else { index ++; }} + if (index == 55) { if (!strncmp (text, "geochats.editChatTitle", text_len)) { *R = tstrdup ("geochats.editChatTitle"); return index; } else { index ++; }} + if (index == 56) { if (!strncmp (text, "geochats.getFullChat", text_len)) { *R = tstrdup ("geochats.getFullChat"); return index; } else { index ++; }} + if (index == 57) { if (!strncmp (text, "geochats.getHistory", text_len)) { *R = tstrdup ("geochats.getHistory"); return index; } else { index ++; }} + if (index == 58) { if (!strncmp (text, "geochats.getLocated", text_len)) { *R = tstrdup ("geochats.getLocated"); return index; } else { index ++; }} + if (index == 59) { if (!strncmp (text, "geochats.getRecents", text_len)) { *R = tstrdup ("geochats.getRecents"); return index; } else { index ++; }} + if (index == 60) { if (!strncmp (text, "geochats.search", text_len)) { *R = tstrdup ("geochats.search"); return index; } else { index ++; }} + if (index == 61) { if (!strncmp (text, "geochats.sendMedia", text_len)) { *R = tstrdup ("geochats.sendMedia"); return index; } else { index ++; }} + if (index == 62) { if (!strncmp (text, "geochats.sendMessage", text_len)) { *R = tstrdup ("geochats.sendMessage"); return index; } else { index ++; }} + if (index == 63) { if (!strncmp (text, "geochats.setTyping", text_len)) { *R = tstrdup ("geochats.setTyping"); return index; } else { index ++; }} + if (index == 64) { if (!strncmp (text, "help.getAppUpdate", text_len)) { *R = tstrdup ("help.getAppUpdate"); return index; } else { index ++; }} + if (index == 65) { if (!strncmp (text, "help.getConfig", text_len)) { *R = tstrdup ("help.getConfig"); return index; } else { index ++; }} + if (index == 66) { if (!strncmp (text, "help.getInviteText", text_len)) { *R = tstrdup ("help.getInviteText"); return index; } else { index ++; }} + if (index == 67) { if (!strncmp (text, "help.getNearestDc", text_len)) { *R = tstrdup ("help.getNearestDc"); return index; } else { index ++; }} + if (index == 68) { if (!strncmp (text, "help.getSupport", text_len)) { *R = tstrdup ("help.getSupport"); return index; } else { index ++; }} + if (index == 69) { if (!strncmp (text, "help.saveAppLog", text_len)) { *R = tstrdup ("help.saveAppLog"); return index; } else { index ++; }} + if (index == 70) { if (!strncmp (text, "initConnection", text_len)) { *R = tstrdup ("initConnection"); return index; } else { index ++; }} + if (index == 71) { if (!strncmp (text, "invokeAfterMsg", text_len)) { *R = tstrdup ("invokeAfterMsg"); return index; } else { index ++; }} + if (index == 72) { if (!strncmp (text, "invokeAfterMsgs", text_len)) { *R = tstrdup ("invokeAfterMsgs"); return index; } else { index ++; }} + if (index == 73) { if (!strncmp (text, "invokeWithLayer", text_len)) { *R = tstrdup ("invokeWithLayer"); return index; } else { index ++; }} + if (index == 74) { if (!strncmp (text, "invokeWithoutUpdates", text_len)) { *R = tstrdup ("invokeWithoutUpdates"); return index; } else { index ++; }} + if (index == 75) { if (!strncmp (text, "messages.acceptEncryption", text_len)) { *R = tstrdup ("messages.acceptEncryption"); return index; } else { index ++; }} + if (index == 76) { if (!strncmp (text, "messages.addChatUser", text_len)) { *R = tstrdup ("messages.addChatUser"); return index; } else { index ++; }} + if (index == 77) { if (!strncmp (text, "messages.checkChatInvite", text_len)) { *R = tstrdup ("messages.checkChatInvite"); return index; } else { index ++; }} + if (index == 78) { if (!strncmp (text, "messages.createChat", text_len)) { *R = tstrdup ("messages.createChat"); return index; } else { index ++; }} + if (index == 79) { if (!strncmp (text, "messages.deleteChatUser", text_len)) { *R = tstrdup ("messages.deleteChatUser"); return index; } else { index ++; }} + if (index == 80) { if (!strncmp (text, "messages.deleteHistory", text_len)) { *R = tstrdup ("messages.deleteHistory"); return index; } else { index ++; }} + if (index == 81) { if (!strncmp (text, "messages.deleteMessages", text_len)) { *R = tstrdup ("messages.deleteMessages"); return index; } else { index ++; }} + if (index == 82) { if (!strncmp (text, "messages.discardEncryption", text_len)) { *R = tstrdup ("messages.discardEncryption"); return index; } else { index ++; }} + if (index == 83) { if (!strncmp (text, "messages.editChatPhoto", text_len)) { *R = tstrdup ("messages.editChatPhoto"); return index; } else { index ++; }} + if (index == 84) { if (!strncmp (text, "messages.editChatTitle", text_len)) { *R = tstrdup ("messages.editChatTitle"); return index; } else { index ++; }} + if (index == 85) { if (!strncmp (text, "messages.exportChatInvite", text_len)) { *R = tstrdup ("messages.exportChatInvite"); return index; } else { index ++; }} + if (index == 86) { if (!strncmp (text, "messages.forwardMessage", text_len)) { *R = tstrdup ("messages.forwardMessage"); return index; } else { index ++; }} + if (index == 87) { if (!strncmp (text, "messages.forwardMessages", text_len)) { *R = tstrdup ("messages.forwardMessages"); return index; } else { index ++; }} + if (index == 88) { if (!strncmp (text, "messages.getAllStickers", text_len)) { *R = tstrdup ("messages.getAllStickers"); return index; } else { index ++; }} + if (index == 89) { if (!strncmp (text, "messages.getChats", text_len)) { *R = tstrdup ("messages.getChats"); return index; } else { index ++; }} + if (index == 90) { if (!strncmp (text, "messages.getDhConfig", text_len)) { *R = tstrdup ("messages.getDhConfig"); return index; } else { index ++; }} + if (index == 91) { if (!strncmp (text, "messages.getDialogs", text_len)) { *R = tstrdup ("messages.getDialogs"); return index; } else { index ++; }} + if (index == 92) { if (!strncmp (text, "messages.getFullChat", text_len)) { *R = tstrdup ("messages.getFullChat"); return index; } else { index ++; }} + if (index == 93) { if (!strncmp (text, "messages.getHistory", text_len)) { *R = tstrdup ("messages.getHistory"); return index; } else { index ++; }} + if (index == 94) { if (!strncmp (text, "messages.getMessages", text_len)) { *R = tstrdup ("messages.getMessages"); return index; } else { index ++; }} + if (index == 95) { if (!strncmp (text, "messages.getStickerSet", text_len)) { *R = tstrdup ("messages.getStickerSet"); return index; } else { index ++; }} + if (index == 96) { if (!strncmp (text, "messages.getStickers", text_len)) { *R = tstrdup ("messages.getStickers"); return index; } else { index ++; }} + if (index == 97) { if (!strncmp (text, "messages.getWebPagePreview", text_len)) { *R = tstrdup ("messages.getWebPagePreview"); return index; } else { index ++; }} + if (index == 98) { if (!strncmp (text, "messages.importChatInvite", text_len)) { *R = tstrdup ("messages.importChatInvite"); return index; } else { index ++; }} + if (index == 99) { if (!strncmp (text, "messages.installStickerSet", text_len)) { *R = tstrdup ("messages.installStickerSet"); return index; } else { index ++; }} + if (index == 100) { if (!strncmp (text, "messages.readEncryptedHistory", text_len)) { *R = tstrdup ("messages.readEncryptedHistory"); return index; } else { index ++; }} + if (index == 101) { if (!strncmp (text, "messages.readHistory", text_len)) { *R = tstrdup ("messages.readHistory"); return index; } else { index ++; }} + if (index == 102) { if (!strncmp (text, "messages.readMessageContents", text_len)) { *R = tstrdup ("messages.readMessageContents"); return index; } else { index ++; }} + if (index == 103) { if (!strncmp (text, "messages.receivedMessages", text_len)) { *R = tstrdup ("messages.receivedMessages"); return index; } else { index ++; }} + if (index == 104) { if (!strncmp (text, "messages.receivedQueue", text_len)) { *R = tstrdup ("messages.receivedQueue"); return index; } else { index ++; }} + if (index == 105) { if (!strncmp (text, "messages.requestEncryption", text_len)) { *R = tstrdup ("messages.requestEncryption"); return index; } else { index ++; }} + if (index == 106) { if (!strncmp (text, "messages.search", text_len)) { *R = tstrdup ("messages.search"); return index; } else { index ++; }} + if (index == 107) { if (!strncmp (text, "messages.sendBroadcast", text_len)) { *R = tstrdup ("messages.sendBroadcast"); return index; } else { index ++; }} + if (index == 108) { if (!strncmp (text, "messages.sendEncrypted", text_len)) { *R = tstrdup ("messages.sendEncrypted"); return index; } else { index ++; }} + if (index == 109) { if (!strncmp (text, "messages.sendEncryptedFile", text_len)) { *R = tstrdup ("messages.sendEncryptedFile"); return index; } else { index ++; }} + if (index == 110) { if (!strncmp (text, "messages.sendEncryptedService", text_len)) { *R = tstrdup ("messages.sendEncryptedService"); return index; } else { index ++; }} + if (index == 111) { if (!strncmp (text, "messages.sendMedia", text_len)) { *R = tstrdup ("messages.sendMedia"); return index; } else { index ++; }} + if (index == 112) { if (!strncmp (text, "messages.sendMessage", text_len)) { *R = tstrdup ("messages.sendMessage"); return index; } else { index ++; }} + if (index == 113) { if (!strncmp (text, "messages.setEncryptedTyping", text_len)) { *R = tstrdup ("messages.setEncryptedTyping"); return index; } else { index ++; }} + if (index == 114) { if (!strncmp (text, "messages.setTyping", text_len)) { *R = tstrdup ("messages.setTyping"); return index; } else { index ++; }} + if (index == 115) { if (!strncmp (text, "messages.startBot", text_len)) { *R = tstrdup ("messages.startBot"); return index; } else { index ++; }} + if (index == 116) { if (!strncmp (text, "messages.uninstallStickerSet", text_len)) { *R = tstrdup ("messages.uninstallStickerSet"); return index; } else { index ++; }} + if (index == 117) { if (!strncmp (text, "photos.deletePhotos", text_len)) { *R = tstrdup ("photos.deletePhotos"); return index; } else { index ++; }} + if (index == 118) { if (!strncmp (text, "photos.getUserPhotos", text_len)) { *R = tstrdup ("photos.getUserPhotos"); return index; } else { index ++; }} + if (index == 119) { if (!strncmp (text, "photos.updateProfilePhoto", text_len)) { *R = tstrdup ("photos.updateProfilePhoto"); return index; } else { index ++; }} + if (index == 120) { if (!strncmp (text, "photos.uploadProfilePhoto", text_len)) { *R = tstrdup ("photos.uploadProfilePhoto"); return index; } else { index ++; }} + if (index == 121) { if (!strncmp (text, "req_DH_params", text_len)) { *R = tstrdup ("req_DH_params"); return index; } else { index ++; }} + if (index == 122) { if (!strncmp (text, "req_pq", text_len)) { *R = tstrdup ("req_pq"); return index; } else { index ++; }} + if (index == 123) { if (!strncmp (text, "set_client_DH_params", text_len)) { *R = tstrdup ("set_client_DH_params"); return index; } else { index ++; }} + if (index == 124) { if (!strncmp (text, "updates.getDifference", text_len)) { *R = tstrdup ("updates.getDifference"); return index; } else { index ++; }} + if (index == 125) { if (!strncmp (text, "updates.getState", text_len)) { *R = tstrdup ("updates.getState"); return index; } else { index ++; }} + if (index == 126) { if (!strncmp (text, "upload.getFile", text_len)) { *R = tstrdup ("upload.getFile"); return index; } else { index ++; }} + if (index == 127) { if (!strncmp (text, "upload.saveBigFilePart", text_len)) { *R = tstrdup ("upload.saveBigFilePart"); return index; } else { index ++; }} + if (index == 128) { if (!strncmp (text, "upload.saveFilePart", text_len)) { *R = tstrdup ("upload.saveFilePart"); return index; } else { index ++; }} + if (index == 129) { if (!strncmp (text, "users.getFullUser", text_len)) { *R = tstrdup ("users.getFullUser"); return index; } else { index ++; }} + if (index == 130) { if (!strncmp (text, "users.getUsers", text_len)) { *R = tstrdup ("users.getUsers"); return index; } else { index ++; }} + *R = 0; + return 0; +} +struct paramed_type *autocomplete_function_any (void) { + expect_token_ptr_autocomplete ("(", 1); + if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); } + if (cur_token_len < 0) { return 0; } + if (cur_token_len == 19 && !memcmp (cur_token, "account.changePhone", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_change_phone (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.checkUsername", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_check_username (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.deleteAccount", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_delete_account (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.getAccountTTL", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_account_t_t_l (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "account.getAuthorizations", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_authorizations (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "account.getNotifySettings", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_notify_settings (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "account.getPassword", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_password (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.getPasswordSettings", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_password_settings (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "account.getPrivacy", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_privacy (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.getWallPapers", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_get_wall_papers (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "account.registerDevice", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_register_device (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "account.resetAuthorization", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_reset_authorization (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.resetNotifySettings", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_reset_notify_settings (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sendChangePhoneCode", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_send_change_phone_code (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.setAccountTTL", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_set_account_t_t_l (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "account.setPrivacy", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_set_privacy (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "account.unregisterDevice", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_unregister_device (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "account.updateDeviceLocked", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_device_locked (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "account.updateNotifySettings", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_notify_settings (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 30 && !memcmp (cur_token, "account.updatePasswordSettings", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_password_settings (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.updateProfile", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_profile (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "account.updateStatus", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_status (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "account.updateUsername", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_account_update_username (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "auth.bindTempAuthKey", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_bind_temp_auth_key (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "auth.checkPassword", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_check_password (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "auth.checkPhone", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_check_phone (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.exportAuthorization", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_export_authorization (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.importAuthorization", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_import_authorization (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "auth.importBotAuthorization", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_import_bot_authorization (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.logOut", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_log_out (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "auth.recoverPassword", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_recover_password (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "auth.requestPasswordRecovery", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_request_password_recovery (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.resetAuthorizations", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_reset_authorizations (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCall", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_send_call (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCode", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_send_code (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sendInvites", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_send_invites (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 12 && !memcmp (cur_token, "auth.sendSms", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_send_sms (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.signIn", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_sign_in (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.signUp", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_auth_sign_up (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.block", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_block (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "contacts.deleteContact", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_delete_contact (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "contacts.deleteContacts", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_delete_contacts (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.exportCard", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_export_card (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.getBlocked", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_get_blocked (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getContacts", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_get_contacts (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getStatuses", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_get_statuses (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.getSuggested", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_get_suggested (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.importCard", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_import_card (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "contacts.importContacts", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_import_contacts (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "contacts.resolveUsername", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_resolve_username (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contacts.search", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_search (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.unblock", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_contacts_unblock (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.checkin", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_checkin (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.createGeoChat", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_create_geo_chat (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatPhoto", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_edit_chat_photo (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatTitle", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_edit_chat_title (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "geochats.getFullChat", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_get_full_chat (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getHistory", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_get_history (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getLocated", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_get_located (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getRecents", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_get_recents (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "geochats.search", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_search (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "geochats.sendMedia", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_send_media (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "geochats.sendMessage", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_send_message (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "geochats.setTyping", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_geochats_set_typing (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "help.getAppUpdate", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_get_app_update (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "help.getConfig", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_get_config (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "help.getInviteText", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_get_invite_text (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "help.getNearestDc", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_get_nearest_dc (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "help.getSupport", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_get_support (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "help.saveAppLog", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_help_save_app_log (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "initConnection", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_init_connection (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "invokeAfterMsg", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_invoke_after_msg (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "invokeAfterMsgs", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_invoke_after_msgs (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "invokeWithLayer", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_invoke_with_layer (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "invokeWithoutUpdates", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_invoke_without_updates (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.acceptEncryption", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_accept_encryption (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.addChatUser", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_add_chat_user (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.checkChatInvite", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_check_chat_invite (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.createChat", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_create_chat (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteChatUser", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_delete_chat_user (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.deleteHistory", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_delete_history (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteMessages", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_delete_messages (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.discardEncryption", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_discard_encryption (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatPhoto", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_edit_chat_photo (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatTitle", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_edit_chat_title (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.exportChatInvite", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_export_chat_invite (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.forwardMessage", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_forward_message (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.forwardMessages", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_forward_messages (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.getAllStickers", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_all_stickers (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.getChats", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_chats (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getDhConfig", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_dh_config (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.getDialogs", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_dialogs (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getFullChat", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_full_chat (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.getHistory", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_history (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getMessages", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_messages (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.getStickerSet", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_sticker_set (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getStickers", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_stickers (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.getWebPagePreview", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_get_web_page_preview (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.importChatInvite", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_import_chat_invite (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.installStickerSet", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_install_sticker_set (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.readEncryptedHistory", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_read_encrypted_history (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.readHistory", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_read_history (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.readMessageContents", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_read_message_contents (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.receivedMessages", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_received_messages (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.receivedQueue", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_received_queue (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.requestEncryption", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_request_encryption (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messages.search", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_search (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendBroadcast", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_broadcast (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendEncrypted", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_encrypted (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sendEncryptedFile", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_encrypted_file (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sendEncryptedService", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_encrypted_service (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "messages.sendMedia", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_media (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sendMessage", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_send_message (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messages.setEncryptedTyping", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_set_encrypted_typing (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "messages.setTyping", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_set_typing (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.startBot", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_start_bot (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.uninstallStickerSet", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_messages_uninstall_sticker_set (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "photos.deletePhotos", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_photos_delete_photos (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "photos.getUserPhotos", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_photos_get_user_photos (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "photos.updateProfilePhoto", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_photos_update_profile_photo (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "photos.uploadProfilePhoto", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_photos_upload_profile_photo (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "req_DH_params", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_req_d_h_params (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 6 && !memcmp (cur_token, "req_pq", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_req_pq (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "set_client_DH_params", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_set_client_d_h_params (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "updates.getDifference", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_updates_get_difference (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updates.getState", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_updates_get_state (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "upload.getFile", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_upload_get_file (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "upload.saveBigFilePart", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_upload_save_big_file_part (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "upload.saveFilePart", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_upload_save_file_part (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "users.getFullUser", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_users_get_full_user (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "users.getUsers", cur_token_len)) { + local_next_token (); + struct paramed_type *P = autocomplete_function_users_get_users (); + if (!P) { return 0; } + expect_token_ptr_autocomplete (")", 1); + return P; + } + return 0; +} diff --git a/libs/tgl/src/auto/auto-autocomplete.h b/libs/tgl/src/auto/auto-autocomplete.h new file mode 100644 index 0000000000..1e58313e55 --- /dev/null +++ b/libs/tgl/src/auto/auto-autocomplete.h @@ -0,0 +1,865 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +#include +int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len); +int autocomplete_constructor_account_days_t_t_l (struct paramed_type *T); +int autocomplete_constructor_audio_empty (struct paramed_type *T); +int autocomplete_constructor_audio (struct paramed_type *T); +int autocomplete_constructor_authorization (struct paramed_type *T); +int autocomplete_constructor_bool_false (struct paramed_type *T); +int autocomplete_constructor_bool_true (struct paramed_type *T); +int autocomplete_constructor_bot_command (struct paramed_type *T); +int autocomplete_constructor_bot_command_old (struct paramed_type *T); +int autocomplete_constructor_bot_info_empty (struct paramed_type *T); +int autocomplete_constructor_bot_info (struct paramed_type *T); +int autocomplete_constructor_bytes (struct paramed_type *T); +int autocomplete_constructor_chat_empty (struct paramed_type *T); +int autocomplete_constructor_chat (struct paramed_type *T); +int autocomplete_constructor_chat_forbidden (struct paramed_type *T); +int autocomplete_constructor_geo_chat (struct paramed_type *T); +int autocomplete_constructor_chat_full (struct paramed_type *T); +int autocomplete_constructor_chat_invite_already (struct paramed_type *T); +int autocomplete_constructor_chat_invite (struct paramed_type *T); +int autocomplete_constructor_chat_located (struct paramed_type *T); +int autocomplete_constructor_chat_participant (struct paramed_type *T); +int autocomplete_constructor_chat_participants_forbidden (struct paramed_type *T); +int autocomplete_constructor_chat_participants (struct paramed_type *T); +int autocomplete_constructor_chat_photo_empty (struct paramed_type *T); +int autocomplete_constructor_chat_photo (struct paramed_type *T); +int autocomplete_constructor_client_d_h_inner_data (struct paramed_type *T); +int autocomplete_constructor_config (struct paramed_type *T); +int autocomplete_constructor_contact (struct paramed_type *T); +int autocomplete_constructor_contact_blocked (struct paramed_type *T); +int autocomplete_constructor_contact_found (struct paramed_type *T); +int autocomplete_constructor_contact_link_unknown (struct paramed_type *T); +int autocomplete_constructor_contact_link_none (struct paramed_type *T); +int autocomplete_constructor_contact_link_has_phone (struct paramed_type *T); +int autocomplete_constructor_contact_link_contact (struct paramed_type *T); +int autocomplete_constructor_contact_status (struct paramed_type *T); +int autocomplete_constructor_contact_suggested (struct paramed_type *T); +int autocomplete_constructor_dc_option_l28 (struct paramed_type *T); +int autocomplete_constructor_dc_option (struct paramed_type *T); +int autocomplete_constructor_decrypted_message (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_service (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_read_messages (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_delete_messages (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_flush_history (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_resend (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_notify_layer (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_typing (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_request_key (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_accept_key (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_abort_key (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_commit_key (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_action_noop (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_layer (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_external_document (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_video_l12 (struct paramed_type *T); +int autocomplete_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T); +int autocomplete_constructor_dialog (struct paramed_type *T); +int autocomplete_constructor_disabled_feature (struct paramed_type *T); +int autocomplete_constructor_document_empty (struct paramed_type *T); +int autocomplete_constructor_document (struct paramed_type *T); +int autocomplete_constructor_document_l19 (struct paramed_type *T); +int autocomplete_constructor_document_attribute_image_size (struct paramed_type *T); +int autocomplete_constructor_document_attribute_animated (struct paramed_type *T); +int autocomplete_constructor_document_attribute_sticker_l28 (struct paramed_type *T); +int autocomplete_constructor_document_attribute_sticker (struct paramed_type *T); +int autocomplete_constructor_document_attribute_video (struct paramed_type *T); +int autocomplete_constructor_document_attribute_audio (struct paramed_type *T); +int autocomplete_constructor_document_attribute_filename (struct paramed_type *T); +int autocomplete_constructor_double (struct paramed_type *T); +int autocomplete_constructor_encrypted_chat_empty (struct paramed_type *T); +int autocomplete_constructor_encrypted_chat_waiting (struct paramed_type *T); +int autocomplete_constructor_encrypted_chat_requested (struct paramed_type *T); +int autocomplete_constructor_encrypted_chat (struct paramed_type *T); +int autocomplete_constructor_encrypted_chat_discarded (struct paramed_type *T); +int autocomplete_constructor_encrypted_file_empty (struct paramed_type *T); +int autocomplete_constructor_encrypted_file (struct paramed_type *T); +int autocomplete_constructor_encrypted_message (struct paramed_type *T); +int autocomplete_constructor_encrypted_message_service (struct paramed_type *T); +int autocomplete_constructor_error (struct paramed_type *T); +int autocomplete_constructor_chat_invite_empty (struct paramed_type *T); +int autocomplete_constructor_chat_invite_exported (struct paramed_type *T); +int autocomplete_constructor_file_location_unavailable (struct paramed_type *T); +int autocomplete_constructor_file_location (struct paramed_type *T); +int autocomplete_constructor_geo_chat_message_empty (struct paramed_type *T); +int autocomplete_constructor_geo_chat_message (struct paramed_type *T); +int autocomplete_constructor_geo_chat_message_service (struct paramed_type *T); +int autocomplete_constructor_geo_point_empty (struct paramed_type *T); +int autocomplete_constructor_geo_point (struct paramed_type *T); +int autocomplete_constructor_imported_contact (struct paramed_type *T); +int autocomplete_constructor_input_app_event (struct paramed_type *T); +int autocomplete_constructor_input_audio_empty (struct paramed_type *T); +int autocomplete_constructor_input_audio (struct paramed_type *T); +int autocomplete_constructor_input_chat_photo_empty (struct paramed_type *T); +int autocomplete_constructor_input_chat_uploaded_photo (struct paramed_type *T); +int autocomplete_constructor_input_chat_photo (struct paramed_type *T); +int autocomplete_constructor_input_phone_contact (struct paramed_type *T); +int autocomplete_constructor_input_document_empty (struct paramed_type *T); +int autocomplete_constructor_input_document (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_chat (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_file_empty (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_file_uploaded (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_file (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T); +int autocomplete_constructor_input_file (struct paramed_type *T); +int autocomplete_constructor_input_file_big (struct paramed_type *T); +int autocomplete_constructor_input_file_location (struct paramed_type *T); +int autocomplete_constructor_input_video_file_location (struct paramed_type *T); +int autocomplete_constructor_input_encrypted_file_location (struct paramed_type *T); +int autocomplete_constructor_input_audio_file_location (struct paramed_type *T); +int autocomplete_constructor_input_document_file_location (struct paramed_type *T); +int autocomplete_constructor_input_geo_chat (struct paramed_type *T); +int autocomplete_constructor_input_geo_point_empty (struct paramed_type *T); +int autocomplete_constructor_input_geo_point (struct paramed_type *T); +int autocomplete_constructor_input_media_empty (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T); +int autocomplete_constructor_input_media_photo (struct paramed_type *T); +int autocomplete_constructor_input_media_geo_point (struct paramed_type *T); +int autocomplete_constructor_input_media_contact (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T); +int autocomplete_constructor_input_media_video (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T); +int autocomplete_constructor_input_media_audio (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T); +int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T); +int autocomplete_constructor_input_media_document (struct paramed_type *T); +int autocomplete_constructor_input_media_venue (struct paramed_type *T); +int autocomplete_constructor_input_notify_peer (struct paramed_type *T); +int autocomplete_constructor_input_notify_users (struct paramed_type *T); +int autocomplete_constructor_input_notify_chats (struct paramed_type *T); +int autocomplete_constructor_input_notify_all (struct paramed_type *T); +int autocomplete_constructor_input_notify_geo_chat_peer (struct paramed_type *T); +int autocomplete_constructor_input_peer_empty (struct paramed_type *T); +int autocomplete_constructor_input_peer_self (struct paramed_type *T); +int autocomplete_constructor_input_peer_contact (struct paramed_type *T); +int autocomplete_constructor_input_peer_foreign (struct paramed_type *T); +int autocomplete_constructor_input_peer_chat (struct paramed_type *T); +int autocomplete_constructor_input_peer_notify_events_empty (struct paramed_type *T); +int autocomplete_constructor_input_peer_notify_events_all (struct paramed_type *T); +int autocomplete_constructor_input_peer_notify_settings (struct paramed_type *T); +int autocomplete_constructor_input_photo_empty (struct paramed_type *T); +int autocomplete_constructor_input_photo (struct paramed_type *T); +int autocomplete_constructor_input_photo_crop_auto (struct paramed_type *T); +int autocomplete_constructor_input_photo_crop (struct paramed_type *T); +int autocomplete_constructor_input_privacy_key_status_timestamp (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_allow_contacts (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_allow_all (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_allow_users (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_disallow_all (struct paramed_type *T); +int autocomplete_constructor_input_privacy_value_disallow_users (struct paramed_type *T); +int autocomplete_constructor_input_sticker_set_empty (struct paramed_type *T); +int autocomplete_constructor_input_sticker_set_i_d (struct paramed_type *T); +int autocomplete_constructor_input_sticker_set_short_name (struct paramed_type *T); +int autocomplete_constructor_input_user_empty (struct paramed_type *T); +int autocomplete_constructor_input_user_self (struct paramed_type *T); +int autocomplete_constructor_input_user_contact (struct paramed_type *T); +int autocomplete_constructor_input_user_foreign (struct paramed_type *T); +int autocomplete_constructor_input_video_empty (struct paramed_type *T); +int autocomplete_constructor_input_video (struct paramed_type *T); +int autocomplete_constructor_int (struct paramed_type *T); +int autocomplete_constructor_int128 (struct paramed_type *T); +int autocomplete_constructor_int256 (struct paramed_type *T); +int autocomplete_constructor_keyboard_button (struct paramed_type *T); +int autocomplete_constructor_keyboard_button_row (struct paramed_type *T); +int autocomplete_constructor_long (struct paramed_type *T); +int autocomplete_constructor_message_empty (struct paramed_type *T); +int autocomplete_constructor_message (struct paramed_type *T); +int autocomplete_constructor_message_service (struct paramed_type *T); +int autocomplete_constructor_message_action_empty (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_create (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T); +int autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T); +int autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T); +int autocomplete_constructor_message_action_chat_joined_by_link (struct paramed_type *T); +int autocomplete_constructor_message_media_empty (struct paramed_type *T); +int autocomplete_constructor_message_media_photo (struct paramed_type *T); +int autocomplete_constructor_message_media_video (struct paramed_type *T); +int autocomplete_constructor_message_media_geo (struct paramed_type *T); +int autocomplete_constructor_message_media_contact (struct paramed_type *T); +int autocomplete_constructor_message_media_unsupported (struct paramed_type *T); +int autocomplete_constructor_message_media_document (struct paramed_type *T); +int autocomplete_constructor_message_media_audio (struct paramed_type *T); +int autocomplete_constructor_message_media_web_page (struct paramed_type *T); +int autocomplete_constructor_message_media_venue (struct paramed_type *T); +int autocomplete_constructor_message_media_photo_l27 (struct paramed_type *T); +int autocomplete_constructor_message_media_video_l27 (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T); +int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T); +int autocomplete_constructor_nearest_dc (struct paramed_type *T); +int autocomplete_constructor_notify_peer (struct paramed_type *T); +int autocomplete_constructor_notify_users (struct paramed_type *T); +int autocomplete_constructor_notify_chats (struct paramed_type *T); +int autocomplete_constructor_notify_all (struct paramed_type *T); +int autocomplete_constructor_null (struct paramed_type *T); +int autocomplete_constructor_p_q_inner_data (struct paramed_type *T); +int autocomplete_constructor_p_q_inner_data_temp (struct paramed_type *T); +int autocomplete_constructor_peer_user (struct paramed_type *T); +int autocomplete_constructor_peer_chat (struct paramed_type *T); +int autocomplete_constructor_peer_notify_events_empty (struct paramed_type *T); +int autocomplete_constructor_peer_notify_events_all (struct paramed_type *T); +int autocomplete_constructor_peer_notify_settings_empty (struct paramed_type *T); +int autocomplete_constructor_peer_notify_settings (struct paramed_type *T); +int autocomplete_constructor_photo_empty (struct paramed_type *T); +int autocomplete_constructor_photo (struct paramed_type *T); +int autocomplete_constructor_photo_l27 (struct paramed_type *T); +int autocomplete_constructor_photo_size_empty (struct paramed_type *T); +int autocomplete_constructor_photo_size (struct paramed_type *T); +int autocomplete_constructor_photo_cached_size (struct paramed_type *T); +int autocomplete_constructor_privacy_key_status_timestamp (struct paramed_type *T); +int autocomplete_constructor_privacy_value_allow_contacts (struct paramed_type *T); +int autocomplete_constructor_privacy_value_allow_all (struct paramed_type *T); +int autocomplete_constructor_privacy_value_allow_users (struct paramed_type *T); +int autocomplete_constructor_privacy_value_disallow_contacts (struct paramed_type *T); +int autocomplete_constructor_privacy_value_disallow_all (struct paramed_type *T); +int autocomplete_constructor_privacy_value_disallow_users (struct paramed_type *T); +int autocomplete_constructor_received_notify_message (struct paramed_type *T); +int autocomplete_constructor_reply_keyboard_hide (struct paramed_type *T); +int autocomplete_constructor_reply_keyboard_force_reply (struct paramed_type *T); +int autocomplete_constructor_reply_keyboard_markup (struct paramed_type *T); +int autocomplete_constructor_res_p_q (struct paramed_type *T); +int autocomplete_constructor_send_message_typing_action (struct paramed_type *T); +int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T); +int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_video_action_l27 (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T); +int autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_document_action_l27 (struct paramed_type *T); +int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T); +int autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T); +int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T); +int autocomplete_constructor_server_d_h_params_fail (struct paramed_type *T); +int autocomplete_constructor_server_d_h_params_ok (struct paramed_type *T); +int autocomplete_constructor_server_d_h_inner_data (struct paramed_type *T); +int autocomplete_constructor_dh_gen_ok (struct paramed_type *T); +int autocomplete_constructor_dh_gen_retry (struct paramed_type *T); +int autocomplete_constructor_dh_gen_fail (struct paramed_type *T); +int autocomplete_constructor_sticker_pack (struct paramed_type *T); +int autocomplete_constructor_sticker_set (struct paramed_type *T); +int autocomplete_constructor_string (struct paramed_type *T); +int autocomplete_constructor_update_new_message (struct paramed_type *T); +int autocomplete_constructor_update_message_i_d (struct paramed_type *T); +int autocomplete_constructor_update_delete_messages (struct paramed_type *T); +int autocomplete_constructor_update_user_typing (struct paramed_type *T); +int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T); +int autocomplete_constructor_update_chat_participants (struct paramed_type *T); +int autocomplete_constructor_update_user_status (struct paramed_type *T); +int autocomplete_constructor_update_user_name (struct paramed_type *T); +int autocomplete_constructor_update_user_photo (struct paramed_type *T); +int autocomplete_constructor_update_contact_registered (struct paramed_type *T); +int autocomplete_constructor_update_contact_link (struct paramed_type *T); +int autocomplete_constructor_update_new_authorization (struct paramed_type *T); +int autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T); +int autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T); +int autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T); +int autocomplete_constructor_update_encryption (struct paramed_type *T); +int autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T); +int autocomplete_constructor_update_chat_participant_add (struct paramed_type *T); +int autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T); +int autocomplete_constructor_update_dc_options (struct paramed_type *T); +int autocomplete_constructor_update_user_blocked (struct paramed_type *T); +int autocomplete_constructor_update_notify_settings (struct paramed_type *T); +int autocomplete_constructor_update_service_notification (struct paramed_type *T); +int autocomplete_constructor_update_privacy (struct paramed_type *T); +int autocomplete_constructor_update_user_phone (struct paramed_type *T); +int autocomplete_constructor_update_read_history_inbox (struct paramed_type *T); +int autocomplete_constructor_update_read_history_outbox (struct paramed_type *T); +int autocomplete_constructor_update_web_page (struct paramed_type *T); +int autocomplete_constructor_update_read_messages_contents (struct paramed_type *T); +int autocomplete_constructor_update_msg_update (struct paramed_type *T); +int autocomplete_constructor_updates_too_long (struct paramed_type *T); +int autocomplete_constructor_update_short_message (struct paramed_type *T); +int autocomplete_constructor_update_short_chat_message (struct paramed_type *T); +int autocomplete_constructor_update_short (struct paramed_type *T); +int autocomplete_constructor_updates_combined (struct paramed_type *T); +int autocomplete_constructor_updates (struct paramed_type *T); +int autocomplete_constructor_user_empty (struct paramed_type *T); +int autocomplete_constructor_user (struct paramed_type *T); +int autocomplete_constructor_user_full (struct paramed_type *T); +int autocomplete_constructor_user_profile_photo_empty (struct paramed_type *T); +int autocomplete_constructor_user_profile_photo (struct paramed_type *T); +int autocomplete_constructor_user_status_empty (struct paramed_type *T); +int autocomplete_constructor_user_status_online (struct paramed_type *T); +int autocomplete_constructor_user_status_offline (struct paramed_type *T); +int autocomplete_constructor_user_status_recently (struct paramed_type *T); +int autocomplete_constructor_user_status_last_week (struct paramed_type *T); +int autocomplete_constructor_user_status_last_month (struct paramed_type *T); +int autocomplete_constructor_vector (struct paramed_type *T); +int autocomplete_constructor_video_empty (struct paramed_type *T); +int autocomplete_constructor_video (struct paramed_type *T); +int autocomplete_constructor_video_l27 (struct paramed_type *T); +int autocomplete_constructor_wall_paper (struct paramed_type *T); +int autocomplete_constructor_wall_paper_solid (struct paramed_type *T); +int autocomplete_constructor_web_page_empty (struct paramed_type *T); +int autocomplete_constructor_web_page_pending (struct paramed_type *T); +int autocomplete_constructor_web_page (struct paramed_type *T); +int autocomplete_constructor_account_authorizations (struct paramed_type *T); +int autocomplete_constructor_account_no_password (struct paramed_type *T); +int autocomplete_constructor_account_password (struct paramed_type *T); +int autocomplete_constructor_account_password_input_settings (struct paramed_type *T); +int autocomplete_constructor_account_password_settings (struct paramed_type *T); +int autocomplete_constructor_account_privacy_rules (struct paramed_type *T); +int autocomplete_constructor_account_sent_change_phone_code (struct paramed_type *T); +int autocomplete_constructor_auth_authorization (struct paramed_type *T); +int autocomplete_constructor_auth_checked_phone (struct paramed_type *T); +int autocomplete_constructor_auth_exported_authorization (struct paramed_type *T); +int autocomplete_constructor_auth_password_recovery (struct paramed_type *T); +int autocomplete_constructor_auth_sent_code (struct paramed_type *T); +int autocomplete_constructor_auth_sent_app_code (struct paramed_type *T); +int autocomplete_constructor_binlog_encr_key (struct paramed_type *T); +int autocomplete_constructor_binlog_start (struct paramed_type *T); +int autocomplete_constructor_binlog_dc_option (struct paramed_type *T); +int autocomplete_constructor_binlog_dc_option_new (struct paramed_type *T); +int autocomplete_constructor_binlog_auth_key (struct paramed_type *T); +int autocomplete_constructor_binlog_default_dc (struct paramed_type *T); +int autocomplete_constructor_binlog_dc_signed (struct paramed_type *T); +int autocomplete_constructor_binlog_our_id (struct paramed_type *T); +int autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T); +int autocomplete_constructor_binlog_set_pts (struct paramed_type *T); +int autocomplete_constructor_binlog_set_qts (struct paramed_type *T); +int autocomplete_constructor_binlog_set_date (struct paramed_type *T); +int autocomplete_constructor_binlog_set_seq (struct paramed_type *T); +int autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T); +int autocomplete_constructor_binlog_encr_chat_new (struct paramed_type *T); +int autocomplete_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T); +int autocomplete_constructor_binlog_user_delete (struct paramed_type *T); +int autocomplete_constructor_binlog_user_new (struct paramed_type *T); +int autocomplete_constructor_binlog_chat_new (struct paramed_type *T); +int autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T); +int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T); +int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T); +int autocomplete_constructor_binlog_message_delete (struct paramed_type *T); +int autocomplete_constructor_binlog_message_new (struct paramed_type *T); +int autocomplete_constructor_binlog_message_encr_new (struct paramed_type *T); +int autocomplete_constructor_binlog_msg_update (struct paramed_type *T); +int autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T); +int autocomplete_constructor_contacts_blocked (struct paramed_type *T); +int autocomplete_constructor_contacts_blocked_slice (struct paramed_type *T); +int autocomplete_constructor_contacts_contacts_not_modified (struct paramed_type *T); +int autocomplete_constructor_contacts_contacts (struct paramed_type *T); +int autocomplete_constructor_contacts_found (struct paramed_type *T); +int autocomplete_constructor_contacts_imported_contacts (struct paramed_type *T); +int autocomplete_constructor_contacts_link (struct paramed_type *T); +int autocomplete_constructor_contacts_suggested (struct paramed_type *T); +int autocomplete_constructor_geochats_located (struct paramed_type *T); +int autocomplete_constructor_geochats_messages (struct paramed_type *T); +int autocomplete_constructor_geochats_messages_slice (struct paramed_type *T); +int autocomplete_constructor_geochats_stated_message (struct paramed_type *T); +int autocomplete_constructor_help_app_update (struct paramed_type *T); +int autocomplete_constructor_help_no_app_update (struct paramed_type *T); +int autocomplete_constructor_help_invite_text (struct paramed_type *T); +int autocomplete_constructor_help_support (struct paramed_type *T); +int autocomplete_constructor_messages_affected_history (struct paramed_type *T); +int autocomplete_constructor_messages_affected_messages (struct paramed_type *T); +int autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T); +int autocomplete_constructor_messages_all_stickers (struct paramed_type *T); +int autocomplete_constructor_messages_chat_full (struct paramed_type *T); +int autocomplete_constructor_messages_chats (struct paramed_type *T); +int autocomplete_constructor_messages_dh_config_not_modified (struct paramed_type *T); +int autocomplete_constructor_messages_dh_config (struct paramed_type *T); +int autocomplete_constructor_messages_dialogs (struct paramed_type *T); +int autocomplete_constructor_messages_dialogs_slice (struct paramed_type *T); +int autocomplete_constructor_messages_message_empty (struct paramed_type *T); +int autocomplete_constructor_messages_messages (struct paramed_type *T); +int autocomplete_constructor_messages_messages_slice (struct paramed_type *T); +int autocomplete_constructor_messages_sent_encrypted_message (struct paramed_type *T); +int autocomplete_constructor_messages_sent_encrypted_file (struct paramed_type *T); +int autocomplete_constructor_messages_sent_message (struct paramed_type *T); +int autocomplete_constructor_messages_sent_message_link (struct paramed_type *T); +int autocomplete_constructor_messages_sticker_set (struct paramed_type *T); +int autocomplete_constructor_messages_stickers_not_modified (struct paramed_type *T); +int autocomplete_constructor_messages_stickers (struct paramed_type *T); +int autocomplete_constructor_photos_photo (struct paramed_type *T); +int autocomplete_constructor_photos_photos (struct paramed_type *T); +int autocomplete_constructor_photos_photos_slice (struct paramed_type *T); +int autocomplete_constructor_storage_file_unknown (struct paramed_type *T); +int autocomplete_constructor_storage_file_jpeg (struct paramed_type *T); +int autocomplete_constructor_storage_file_gif (struct paramed_type *T); +int autocomplete_constructor_storage_file_png (struct paramed_type *T); +int autocomplete_constructor_storage_file_pdf (struct paramed_type *T); +int autocomplete_constructor_storage_file_mp3 (struct paramed_type *T); +int autocomplete_constructor_storage_file_mov (struct paramed_type *T); +int autocomplete_constructor_storage_file_partial (struct paramed_type *T); +int autocomplete_constructor_storage_file_mp4 (struct paramed_type *T); +int autocomplete_constructor_storage_file_webp (struct paramed_type *T); +int autocomplete_constructor_updates_difference_empty (struct paramed_type *T); +int autocomplete_constructor_updates_difference (struct paramed_type *T); +int autocomplete_constructor_updates_difference_slice (struct paramed_type *T); +int autocomplete_constructor_updates_state (struct paramed_type *T); +int autocomplete_constructor_upload_file (struct paramed_type *T); +int autocomplete_type_account_days_t_t_l (struct paramed_type *T); +int do_autocomplete_type_account_days_t_t_l (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_days_t_t_l (struct paramed_type *T); +int autocomplete_type_audio (struct paramed_type *T); +int do_autocomplete_type_audio (const char *text, int len, int index, char **R); +int autocomplete_type_bare_audio (struct paramed_type *T); +int autocomplete_type_authorization (struct paramed_type *T); +int do_autocomplete_type_authorization (const char *text, int len, int index, char **R); +int autocomplete_type_bare_authorization (struct paramed_type *T); +int autocomplete_type_bool (struct paramed_type *T); +int do_autocomplete_type_bool (const char *text, int len, int index, char **R); +int autocomplete_type_bare_bool (struct paramed_type *T); +int autocomplete_type_bot_command (struct paramed_type *T); +int do_autocomplete_type_bot_command (const char *text, int len, int index, char **R); +int autocomplete_type_bare_bot_command (struct paramed_type *T); +int autocomplete_type_bot_info (struct paramed_type *T); +int do_autocomplete_type_bot_info (const char *text, int len, int index, char **R); +int autocomplete_type_bare_bot_info (struct paramed_type *T); +int autocomplete_type_bytes (struct paramed_type *T); +int do_autocomplete_type_bytes (const char *text, int len, int index, char **R); +int autocomplete_type_bare_bytes (struct paramed_type *T); +int autocomplete_type_chat (struct paramed_type *T); +int do_autocomplete_type_chat (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat (struct paramed_type *T); +int autocomplete_type_chat_full (struct paramed_type *T); +int do_autocomplete_type_chat_full (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_full (struct paramed_type *T); +int autocomplete_type_chat_invite (struct paramed_type *T); +int do_autocomplete_type_chat_invite (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_invite (struct paramed_type *T); +int autocomplete_type_chat_located (struct paramed_type *T); +int do_autocomplete_type_chat_located (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_located (struct paramed_type *T); +int autocomplete_type_chat_participant (struct paramed_type *T); +int do_autocomplete_type_chat_participant (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_participant (struct paramed_type *T); +int autocomplete_type_chat_participants (struct paramed_type *T); +int do_autocomplete_type_chat_participants (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_participants (struct paramed_type *T); +int autocomplete_type_chat_photo (struct paramed_type *T); +int do_autocomplete_type_chat_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_chat_photo (struct paramed_type *T); +int autocomplete_type_client_d_h_inner_data (struct paramed_type *T); +int do_autocomplete_type_client_d_h_inner_data (const char *text, int len, int index, char **R); +int autocomplete_type_bare_client_d_h_inner_data (struct paramed_type *T); +int autocomplete_type_config (struct paramed_type *T); +int do_autocomplete_type_config (const char *text, int len, int index, char **R); +int autocomplete_type_bare_config (struct paramed_type *T); +int autocomplete_type_contact (struct paramed_type *T); +int do_autocomplete_type_contact (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact (struct paramed_type *T); +int autocomplete_type_contact_blocked (struct paramed_type *T); +int do_autocomplete_type_contact_blocked (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact_blocked (struct paramed_type *T); +int autocomplete_type_contact_found (struct paramed_type *T); +int do_autocomplete_type_contact_found (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact_found (struct paramed_type *T); +int autocomplete_type_contact_link (struct paramed_type *T); +int do_autocomplete_type_contact_link (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact_link (struct paramed_type *T); +int autocomplete_type_contact_status (struct paramed_type *T); +int do_autocomplete_type_contact_status (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact_status (struct paramed_type *T); +int autocomplete_type_contact_suggested (struct paramed_type *T); +int do_autocomplete_type_contact_suggested (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contact_suggested (struct paramed_type *T); +int autocomplete_type_dc_option (struct paramed_type *T); +int do_autocomplete_type_dc_option (const char *text, int len, int index, char **R); +int autocomplete_type_bare_dc_option (struct paramed_type *T); +int autocomplete_type_decrypted_message (struct paramed_type *T); +int do_autocomplete_type_decrypted_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_decrypted_message (struct paramed_type *T); +int autocomplete_type_decrypted_message_action (struct paramed_type *T); +int do_autocomplete_type_decrypted_message_action (const char *text, int len, int index, char **R); +int autocomplete_type_bare_decrypted_message_action (struct paramed_type *T); +int autocomplete_type_decrypted_message_layer (struct paramed_type *T); +int do_autocomplete_type_decrypted_message_layer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_decrypted_message_layer (struct paramed_type *T); +int autocomplete_type_decrypted_message_media (struct paramed_type *T); +int do_autocomplete_type_decrypted_message_media (const char *text, int len, int index, char **R); +int autocomplete_type_bare_decrypted_message_media (struct paramed_type *T); +int autocomplete_type_dialog (struct paramed_type *T); +int do_autocomplete_type_dialog (const char *text, int len, int index, char **R); +int autocomplete_type_bare_dialog (struct paramed_type *T); +int autocomplete_type_disabled_feature (struct paramed_type *T); +int do_autocomplete_type_disabled_feature (const char *text, int len, int index, char **R); +int autocomplete_type_bare_disabled_feature (struct paramed_type *T); +int autocomplete_type_document (struct paramed_type *T); +int do_autocomplete_type_document (const char *text, int len, int index, char **R); +int autocomplete_type_bare_document (struct paramed_type *T); +int autocomplete_type_document_attribute (struct paramed_type *T); +int do_autocomplete_type_document_attribute (const char *text, int len, int index, char **R); +int autocomplete_type_bare_document_attribute (struct paramed_type *T); +int autocomplete_type_double (struct paramed_type *T); +int do_autocomplete_type_double (const char *text, int len, int index, char **R); +int autocomplete_type_bare_double (struct paramed_type *T); +int autocomplete_type_encrypted_chat (struct paramed_type *T); +int do_autocomplete_type_encrypted_chat (const char *text, int len, int index, char **R); +int autocomplete_type_bare_encrypted_chat (struct paramed_type *T); +int autocomplete_type_encrypted_file (struct paramed_type *T); +int do_autocomplete_type_encrypted_file (const char *text, int len, int index, char **R); +int autocomplete_type_bare_encrypted_file (struct paramed_type *T); +int autocomplete_type_encrypted_message (struct paramed_type *T); +int do_autocomplete_type_encrypted_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_encrypted_message (struct paramed_type *T); +int autocomplete_type_error (struct paramed_type *T); +int do_autocomplete_type_error (const char *text, int len, int index, char **R); +int autocomplete_type_bare_error (struct paramed_type *T); +int autocomplete_type_exported_chat_invite (struct paramed_type *T); +int do_autocomplete_type_exported_chat_invite (const char *text, int len, int index, char **R); +int autocomplete_type_bare_exported_chat_invite (struct paramed_type *T); +int autocomplete_type_file_location (struct paramed_type *T); +int do_autocomplete_type_file_location (const char *text, int len, int index, char **R); +int autocomplete_type_bare_file_location (struct paramed_type *T); +int autocomplete_type_geo_chat_message (struct paramed_type *T); +int do_autocomplete_type_geo_chat_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_geo_chat_message (struct paramed_type *T); +int autocomplete_type_geo_point (struct paramed_type *T); +int do_autocomplete_type_geo_point (const char *text, int len, int index, char **R); +int autocomplete_type_bare_geo_point (struct paramed_type *T); +int autocomplete_type_imported_contact (struct paramed_type *T); +int do_autocomplete_type_imported_contact (const char *text, int len, int index, char **R); +int autocomplete_type_bare_imported_contact (struct paramed_type *T); +int autocomplete_type_input_app_event (struct paramed_type *T); +int do_autocomplete_type_input_app_event (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_app_event (struct paramed_type *T); +int autocomplete_type_input_audio (struct paramed_type *T); +int do_autocomplete_type_input_audio (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_audio (struct paramed_type *T); +int autocomplete_type_input_chat_photo (struct paramed_type *T); +int do_autocomplete_type_input_chat_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_chat_photo (struct paramed_type *T); +int autocomplete_type_input_contact (struct paramed_type *T); +int do_autocomplete_type_input_contact (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_contact (struct paramed_type *T); +int autocomplete_type_input_document (struct paramed_type *T); +int do_autocomplete_type_input_document (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_document (struct paramed_type *T); +int autocomplete_type_input_encrypted_chat (struct paramed_type *T); +int do_autocomplete_type_input_encrypted_chat (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_encrypted_chat (struct paramed_type *T); +int autocomplete_type_input_encrypted_file (struct paramed_type *T); +int do_autocomplete_type_input_encrypted_file (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_encrypted_file (struct paramed_type *T); +int autocomplete_type_input_file (struct paramed_type *T); +int do_autocomplete_type_input_file (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_file (struct paramed_type *T); +int autocomplete_type_input_file_location (struct paramed_type *T); +int do_autocomplete_type_input_file_location (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_file_location (struct paramed_type *T); +int autocomplete_type_input_geo_chat (struct paramed_type *T); +int do_autocomplete_type_input_geo_chat (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_geo_chat (struct paramed_type *T); +int autocomplete_type_input_geo_point (struct paramed_type *T); +int do_autocomplete_type_input_geo_point (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_geo_point (struct paramed_type *T); +int autocomplete_type_input_media (struct paramed_type *T); +int do_autocomplete_type_input_media (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_media (struct paramed_type *T); +int autocomplete_type_input_notify_peer (struct paramed_type *T); +int do_autocomplete_type_input_notify_peer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_notify_peer (struct paramed_type *T); +int autocomplete_type_input_peer (struct paramed_type *T); +int do_autocomplete_type_input_peer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_peer (struct paramed_type *T); +int autocomplete_type_input_peer_notify_events (struct paramed_type *T); +int do_autocomplete_type_input_peer_notify_events (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_peer_notify_events (struct paramed_type *T); +int autocomplete_type_input_peer_notify_settings (struct paramed_type *T); +int do_autocomplete_type_input_peer_notify_settings (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_peer_notify_settings (struct paramed_type *T); +int autocomplete_type_input_photo (struct paramed_type *T); +int do_autocomplete_type_input_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_photo (struct paramed_type *T); +int autocomplete_type_input_photo_crop (struct paramed_type *T); +int do_autocomplete_type_input_photo_crop (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_photo_crop (struct paramed_type *T); +int autocomplete_type_input_privacy_key (struct paramed_type *T); +int do_autocomplete_type_input_privacy_key (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_privacy_key (struct paramed_type *T); +int autocomplete_type_input_privacy_rule (struct paramed_type *T); +int do_autocomplete_type_input_privacy_rule (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_privacy_rule (struct paramed_type *T); +int autocomplete_type_input_sticker_set (struct paramed_type *T); +int do_autocomplete_type_input_sticker_set (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_sticker_set (struct paramed_type *T); +int autocomplete_type_input_user (struct paramed_type *T); +int do_autocomplete_type_input_user (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_user (struct paramed_type *T); +int autocomplete_type_input_video (struct paramed_type *T); +int do_autocomplete_type_input_video (const char *text, int len, int index, char **R); +int autocomplete_type_bare_input_video (struct paramed_type *T); +int autocomplete_type_int (struct paramed_type *T); +int do_autocomplete_type_int (const char *text, int len, int index, char **R); +int autocomplete_type_bare_int (struct paramed_type *T); +int autocomplete_type_int128 (struct paramed_type *T); +int do_autocomplete_type_int128 (const char *text, int len, int index, char **R); +int autocomplete_type_bare_int128 (struct paramed_type *T); +int autocomplete_type_int256 (struct paramed_type *T); +int do_autocomplete_type_int256 (const char *text, int len, int index, char **R); +int autocomplete_type_bare_int256 (struct paramed_type *T); +int autocomplete_type_keyboard_button (struct paramed_type *T); +int do_autocomplete_type_keyboard_button (const char *text, int len, int index, char **R); +int autocomplete_type_bare_keyboard_button (struct paramed_type *T); +int autocomplete_type_keyboard_button_row (struct paramed_type *T); +int do_autocomplete_type_keyboard_button_row (const char *text, int len, int index, char **R); +int autocomplete_type_bare_keyboard_button_row (struct paramed_type *T); +int autocomplete_type_long (struct paramed_type *T); +int do_autocomplete_type_long (const char *text, int len, int index, char **R); +int autocomplete_type_bare_long (struct paramed_type *T); +int autocomplete_type_message (struct paramed_type *T); +int do_autocomplete_type_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_message (struct paramed_type *T); +int autocomplete_type_message_action (struct paramed_type *T); +int do_autocomplete_type_message_action (const char *text, int len, int index, char **R); +int autocomplete_type_bare_message_action (struct paramed_type *T); +int autocomplete_type_message_media (struct paramed_type *T); +int do_autocomplete_type_message_media (const char *text, int len, int index, char **R); +int autocomplete_type_bare_message_media (struct paramed_type *T); +int autocomplete_type_messages_filter (struct paramed_type *T); +int do_autocomplete_type_messages_filter (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_filter (struct paramed_type *T); +int autocomplete_type_nearest_dc (struct paramed_type *T); +int do_autocomplete_type_nearest_dc (const char *text, int len, int index, char **R); +int autocomplete_type_bare_nearest_dc (struct paramed_type *T); +int autocomplete_type_notify_peer (struct paramed_type *T); +int do_autocomplete_type_notify_peer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_notify_peer (struct paramed_type *T); +int autocomplete_type_null (struct paramed_type *T); +int do_autocomplete_type_null (const char *text, int len, int index, char **R); +int autocomplete_type_bare_null (struct paramed_type *T); +int autocomplete_type_p_q_inner_data (struct paramed_type *T); +int do_autocomplete_type_p_q_inner_data (const char *text, int len, int index, char **R); +int autocomplete_type_bare_p_q_inner_data (struct paramed_type *T); +int autocomplete_type_peer (struct paramed_type *T); +int do_autocomplete_type_peer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_peer (struct paramed_type *T); +int autocomplete_type_peer_notify_events (struct paramed_type *T); +int do_autocomplete_type_peer_notify_events (const char *text, int len, int index, char **R); +int autocomplete_type_bare_peer_notify_events (struct paramed_type *T); +int autocomplete_type_peer_notify_settings (struct paramed_type *T); +int do_autocomplete_type_peer_notify_settings (const char *text, int len, int index, char **R); +int autocomplete_type_bare_peer_notify_settings (struct paramed_type *T); +int autocomplete_type_photo (struct paramed_type *T); +int do_autocomplete_type_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_photo (struct paramed_type *T); +int autocomplete_type_photo_size (struct paramed_type *T); +int do_autocomplete_type_photo_size (const char *text, int len, int index, char **R); +int autocomplete_type_bare_photo_size (struct paramed_type *T); +int autocomplete_type_privacy_key (struct paramed_type *T); +int do_autocomplete_type_privacy_key (const char *text, int len, int index, char **R); +int autocomplete_type_bare_privacy_key (struct paramed_type *T); +int autocomplete_type_privacy_rule (struct paramed_type *T); +int do_autocomplete_type_privacy_rule (const char *text, int len, int index, char **R); +int autocomplete_type_bare_privacy_rule (struct paramed_type *T); +int autocomplete_type_received_notify_message (struct paramed_type *T); +int do_autocomplete_type_received_notify_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_received_notify_message (struct paramed_type *T); +int autocomplete_type_reply_markup (struct paramed_type *T); +int do_autocomplete_type_reply_markup (const char *text, int len, int index, char **R); +int autocomplete_type_bare_reply_markup (struct paramed_type *T); +int autocomplete_type_res_p_q (struct paramed_type *T); +int do_autocomplete_type_res_p_q (const char *text, int len, int index, char **R); +int autocomplete_type_bare_res_p_q (struct paramed_type *T); +int autocomplete_type_send_message_action (struct paramed_type *T); +int do_autocomplete_type_send_message_action (const char *text, int len, int index, char **R); +int autocomplete_type_bare_send_message_action (struct paramed_type *T); +int autocomplete_type_server_d_h_params (struct paramed_type *T); +int do_autocomplete_type_server_d_h_params (const char *text, int len, int index, char **R); +int autocomplete_type_bare_server_d_h_params (struct paramed_type *T); +int autocomplete_type_server_d_h_inner_data (struct paramed_type *T); +int do_autocomplete_type_server_d_h_inner_data (const char *text, int len, int index, char **R); +int autocomplete_type_bare_server_d_h_inner_data (struct paramed_type *T); +int autocomplete_type_set_client_d_h_params_answer (struct paramed_type *T); +int do_autocomplete_type_set_client_d_h_params_answer (const char *text, int len, int index, char **R); +int autocomplete_type_bare_set_client_d_h_params_answer (struct paramed_type *T); +int autocomplete_type_sticker_pack (struct paramed_type *T); +int do_autocomplete_type_sticker_pack (const char *text, int len, int index, char **R); +int autocomplete_type_bare_sticker_pack (struct paramed_type *T); +int autocomplete_type_sticker_set (struct paramed_type *T); +int do_autocomplete_type_sticker_set (const char *text, int len, int index, char **R); +int autocomplete_type_bare_sticker_set (struct paramed_type *T); +int autocomplete_type_string (struct paramed_type *T); +int do_autocomplete_type_string (const char *text, int len, int index, char **R); +int autocomplete_type_bare_string (struct paramed_type *T); +int autocomplete_type_update (struct paramed_type *T); +int do_autocomplete_type_update (const char *text, int len, int index, char **R); +int autocomplete_type_bare_update (struct paramed_type *T); +int autocomplete_type_updates (struct paramed_type *T); +int do_autocomplete_type_updates (const char *text, int len, int index, char **R); +int autocomplete_type_bare_updates (struct paramed_type *T); +int autocomplete_type_user (struct paramed_type *T); +int do_autocomplete_type_user (const char *text, int len, int index, char **R); +int autocomplete_type_bare_user (struct paramed_type *T); +int autocomplete_type_user_full (struct paramed_type *T); +int do_autocomplete_type_user_full (const char *text, int len, int index, char **R); +int autocomplete_type_bare_user_full (struct paramed_type *T); +int autocomplete_type_user_profile_photo (struct paramed_type *T); +int do_autocomplete_type_user_profile_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_user_profile_photo (struct paramed_type *T); +int autocomplete_type_user_status (struct paramed_type *T); +int do_autocomplete_type_user_status (const char *text, int len, int index, char **R); +int autocomplete_type_bare_user_status (struct paramed_type *T); +int autocomplete_type_vector (struct paramed_type *T); +int do_autocomplete_type_vector (const char *text, int len, int index, char **R); +int autocomplete_type_bare_vector (struct paramed_type *T); +int autocomplete_type_video (struct paramed_type *T); +int do_autocomplete_type_video (const char *text, int len, int index, char **R); +int autocomplete_type_bare_video (struct paramed_type *T); +int autocomplete_type_wall_paper (struct paramed_type *T); +int do_autocomplete_type_wall_paper (const char *text, int len, int index, char **R); +int autocomplete_type_bare_wall_paper (struct paramed_type *T); +int autocomplete_type_web_page (struct paramed_type *T); +int do_autocomplete_type_web_page (const char *text, int len, int index, char **R); +int autocomplete_type_bare_web_page (struct paramed_type *T); +int autocomplete_type_account_authorizations (struct paramed_type *T); +int do_autocomplete_type_account_authorizations (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_authorizations (struct paramed_type *T); +int autocomplete_type_account_password (struct paramed_type *T); +int do_autocomplete_type_account_password (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_password (struct paramed_type *T); +int autocomplete_type_account_password_input_settings (struct paramed_type *T); +int do_autocomplete_type_account_password_input_settings (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_password_input_settings (struct paramed_type *T); +int autocomplete_type_account_password_settings (struct paramed_type *T); +int do_autocomplete_type_account_password_settings (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_password_settings (struct paramed_type *T); +int autocomplete_type_account_privacy_rules (struct paramed_type *T); +int do_autocomplete_type_account_privacy_rules (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_privacy_rules (struct paramed_type *T); +int autocomplete_type_account_sent_change_phone_code (struct paramed_type *T); +int do_autocomplete_type_account_sent_change_phone_code (const char *text, int len, int index, char **R); +int autocomplete_type_bare_account_sent_change_phone_code (struct paramed_type *T); +int autocomplete_type_auth_authorization (struct paramed_type *T); +int do_autocomplete_type_auth_authorization (const char *text, int len, int index, char **R); +int autocomplete_type_bare_auth_authorization (struct paramed_type *T); +int autocomplete_type_auth_checked_phone (struct paramed_type *T); +int do_autocomplete_type_auth_checked_phone (const char *text, int len, int index, char **R); +int autocomplete_type_bare_auth_checked_phone (struct paramed_type *T); +int autocomplete_type_auth_exported_authorization (struct paramed_type *T); +int do_autocomplete_type_auth_exported_authorization (const char *text, int len, int index, char **R); +int autocomplete_type_bare_auth_exported_authorization (struct paramed_type *T); +int autocomplete_type_auth_password_recovery (struct paramed_type *T); +int do_autocomplete_type_auth_password_recovery (const char *text, int len, int index, char **R); +int autocomplete_type_bare_auth_password_recovery (struct paramed_type *T); +int autocomplete_type_auth_sent_code (struct paramed_type *T); +int do_autocomplete_type_auth_sent_code (const char *text, int len, int index, char **R); +int autocomplete_type_bare_auth_sent_code (struct paramed_type *T); +int autocomplete_type_binlog_encr_key (struct paramed_type *T); +int do_autocomplete_type_binlog_encr_key (const char *text, int len, int index, char **R); +int autocomplete_type_bare_binlog_encr_key (struct paramed_type *T); +int autocomplete_type_binlog_update (struct paramed_type *T); +int do_autocomplete_type_binlog_update (const char *text, int len, int index, char **R); +int autocomplete_type_bare_binlog_update (struct paramed_type *T); +int autocomplete_type_contacts_blocked (struct paramed_type *T); +int do_autocomplete_type_contacts_blocked (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_blocked (struct paramed_type *T); +int autocomplete_type_contacts_contacts (struct paramed_type *T); +int do_autocomplete_type_contacts_contacts (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_contacts (struct paramed_type *T); +int autocomplete_type_contacts_found (struct paramed_type *T); +int do_autocomplete_type_contacts_found (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_found (struct paramed_type *T); +int autocomplete_type_contacts_imported_contacts (struct paramed_type *T); +int do_autocomplete_type_contacts_imported_contacts (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_imported_contacts (struct paramed_type *T); +int autocomplete_type_contacts_link (struct paramed_type *T); +int do_autocomplete_type_contacts_link (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_link (struct paramed_type *T); +int autocomplete_type_contacts_suggested (struct paramed_type *T); +int do_autocomplete_type_contacts_suggested (const char *text, int len, int index, char **R); +int autocomplete_type_bare_contacts_suggested (struct paramed_type *T); +int autocomplete_type_geochats_located (struct paramed_type *T); +int do_autocomplete_type_geochats_located (const char *text, int len, int index, char **R); +int autocomplete_type_bare_geochats_located (struct paramed_type *T); +int autocomplete_type_geochats_messages (struct paramed_type *T); +int do_autocomplete_type_geochats_messages (const char *text, int len, int index, char **R); +int autocomplete_type_bare_geochats_messages (struct paramed_type *T); +int autocomplete_type_geochats_stated_message (struct paramed_type *T); +int do_autocomplete_type_geochats_stated_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_geochats_stated_message (struct paramed_type *T); +int autocomplete_type_help_app_update (struct paramed_type *T); +int do_autocomplete_type_help_app_update (const char *text, int len, int index, char **R); +int autocomplete_type_bare_help_app_update (struct paramed_type *T); +int autocomplete_type_help_invite_text (struct paramed_type *T); +int do_autocomplete_type_help_invite_text (const char *text, int len, int index, char **R); +int autocomplete_type_bare_help_invite_text (struct paramed_type *T); +int autocomplete_type_help_support (struct paramed_type *T); +int do_autocomplete_type_help_support (const char *text, int len, int index, char **R); +int autocomplete_type_bare_help_support (struct paramed_type *T); +int autocomplete_type_messages_affected_history (struct paramed_type *T); +int do_autocomplete_type_messages_affected_history (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_affected_history (struct paramed_type *T); +int autocomplete_type_messages_affected_messages (struct paramed_type *T); +int do_autocomplete_type_messages_affected_messages (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_affected_messages (struct paramed_type *T); +int autocomplete_type_messages_all_stickers (struct paramed_type *T); +int do_autocomplete_type_messages_all_stickers (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_all_stickers (struct paramed_type *T); +int autocomplete_type_messages_chat_full (struct paramed_type *T); +int do_autocomplete_type_messages_chat_full (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_chat_full (struct paramed_type *T); +int autocomplete_type_messages_chats (struct paramed_type *T); +int do_autocomplete_type_messages_chats (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_chats (struct paramed_type *T); +int autocomplete_type_messages_dh_config (struct paramed_type *T); +int do_autocomplete_type_messages_dh_config (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_dh_config (struct paramed_type *T); +int autocomplete_type_messages_dialogs (struct paramed_type *T); +int do_autocomplete_type_messages_dialogs (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_dialogs (struct paramed_type *T); +int autocomplete_type_messages_message (struct paramed_type *T); +int do_autocomplete_type_messages_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_message (struct paramed_type *T); +int autocomplete_type_messages_messages (struct paramed_type *T); +int do_autocomplete_type_messages_messages (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_messages (struct paramed_type *T); +int autocomplete_type_messages_sent_encrypted_message (struct paramed_type *T); +int do_autocomplete_type_messages_sent_encrypted_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_sent_encrypted_message (struct paramed_type *T); +int autocomplete_type_messages_sent_message (struct paramed_type *T); +int do_autocomplete_type_messages_sent_message (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_sent_message (struct paramed_type *T); +int autocomplete_type_messages_sticker_set (struct paramed_type *T); +int do_autocomplete_type_messages_sticker_set (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_sticker_set (struct paramed_type *T); +int autocomplete_type_messages_stickers (struct paramed_type *T); +int do_autocomplete_type_messages_stickers (const char *text, int len, int index, char **R); +int autocomplete_type_bare_messages_stickers (struct paramed_type *T); +int autocomplete_type_photos_photo (struct paramed_type *T); +int do_autocomplete_type_photos_photo (const char *text, int len, int index, char **R); +int autocomplete_type_bare_photos_photo (struct paramed_type *T); +int autocomplete_type_photos_photos (struct paramed_type *T); +int do_autocomplete_type_photos_photos (const char *text, int len, int index, char **R); +int autocomplete_type_bare_photos_photos (struct paramed_type *T); +int autocomplete_type_storage_file_type (struct paramed_type *T); +int do_autocomplete_type_storage_file_type (const char *text, int len, int index, char **R); +int autocomplete_type_bare_storage_file_type (struct paramed_type *T); +int autocomplete_type_updates_difference (struct paramed_type *T); +int do_autocomplete_type_updates_difference (const char *text, int len, int index, char **R); +int autocomplete_type_bare_updates_difference (struct paramed_type *T); +int autocomplete_type_updates_state (struct paramed_type *T); +int do_autocomplete_type_updates_state (const char *text, int len, int index, char **R); +int autocomplete_type_bare_updates_state (struct paramed_type *T); +int autocomplete_type_upload_file (struct paramed_type *T); +int do_autocomplete_type_upload_file (const char *text, int len, int index, char **R); +int autocomplete_type_bare_upload_file (struct paramed_type *T); +int autocomplete_type_any (struct paramed_type *T); +struct paramed_type *autocomplete_function_any (void); diff --git a/libs/tgl/src/auto/auto-fetch-ds.c b/libs/tgl/src/auto/auto-fetch-ds.c new file mode 100644 index 0000000000..da360323a0 --- /dev/null +++ b/libs/tgl/src/auto/auto-fetch-ds.c @@ -0,0 +1,11877 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-fetch-ds.h" +#include "auto-skip.h" +#include "auto-types.h" +#include "..\auto-static-fetch-ds.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-fetch-ds.h" +#include "auto/auto-skip.h" +#include "auto/auto-types.h" +#include "auto-static-fetch-ds.c" +#include "mtproto-common.h" +#endif +#include +struct tl_ds_account_days_t_t_l *fetch_ds_constructor_account_days_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return 0; } + struct tl_ds_account_days_t_t_l * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->days = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_audio *fetch_ds_constructor_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; } + struct tl_ds_audio * result = talloc0 (sizeof (*result)); + result->magic = 0x586988d8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_audio *fetch_ds_constructor_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; } + struct tl_ds_audio * result = talloc0 (sizeof (*result)); + result->magic = 0xc7ac6496; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field8); + return result; +} +struct tl_ds_authorization *fetch_ds_constructor_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return 0; } + struct tl_ds_authorization * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hash = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->device_model = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->platform = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->system_version = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->api_id = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->app_name = fetch_ds_type_bare_string (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->app_version = fetch_ds_type_bare_string (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date_created = fetch_ds_type_bare_int (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date_active = fetch_ds_type_bare_int (field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ip = fetch_ds_type_bare_string (field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->country = fetch_ds_type_bare_string (field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->region = fetch_ds_type_bare_string (field13); + return result; +} +struct tl_ds_bool *fetch_ds_constructor_bool_false (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; } + struct tl_ds_bool * result = talloc0 (sizeof (*result)); + result->magic = 0xbc799737; + return result; +} +struct tl_ds_bool *fetch_ds_constructor_bool_true (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; } + struct tl_ds_bool * result = talloc0 (sizeof (*result)); + result->magic = 0x997275b5; + return result; +} +struct tl_ds_bot_command *fetch_ds_constructor_bot_command (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; } + struct tl_ds_bot_command * result = talloc0 (sizeof (*result)); + result->magic = 0xc27ac8c7; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->command = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->description = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_bot_command *fetch_ds_constructor_bot_command_old (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; } + struct tl_ds_bot_command * result = talloc0 (sizeof (*result)); + result->magic = 0xb79d22ab; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->command = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->params = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->description = fetch_ds_type_bare_string (field3); + return result; +} +struct tl_ds_bot_info *fetch_ds_constructor_bot_info_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; } + struct tl_ds_bot_info * result = talloc0 (sizeof (*result)); + result->magic = 0xbb2e37ce; + return result; +} +struct tl_ds_bot_info *fetch_ds_constructor_bot_info (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; } + struct tl_ds_bot_info * result = talloc0 (sizeof (*result)); + result->magic = 0x09cf585d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->share_text = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->description = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->commands = (void *)fetch_ds_type_vector (field5); + return result; +} +struct tl_ds_string *fetch_ds_constructor_bytes (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return 0; } + struct tl_ds_string * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 4); + int l = prefetch_strlen (); + assert (l >= 0); + result->len = l; + result->data = talloc (l + 1); + result->data[l] = 0; + memcpy (result->data, fetch_str (l), l); + return result; +} +struct tl_ds_chat *fetch_ds_constructor_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; } + struct tl_ds_chat * result = talloc0 (sizeof (*result)); + result->magic = 0x9ba2d800; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_chat *fetch_ds_constructor_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; } + struct tl_ds_chat * result = talloc0 (sizeof (*result)); + result->magic = 0x6e9c9bc7; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_chat_photo (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participants_count = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->left = fetch_ds_type_bool (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field7); + return result; +} +struct tl_ds_chat *fetch_ds_constructor_chat_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; } + struct tl_ds_chat * result = talloc0 (sizeof (*result)); + result->magic = 0xfb0ccc41; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_chat *fetch_ds_constructor_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; } + struct tl_ds_chat * result = talloc0 (sizeof (*result)); + result->magic = 0x75eaea5a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->address = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->venue = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo = fetch_ds_type_geo_point (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_chat_photo (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participants_count = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->checked_in = fetch_ds_type_bool (field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field11); + return result; +} +struct tl_ds_chat_full *fetch_ds_constructor_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return 0; } + struct tl_ds_chat_full * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participants = fetch_ds_type_chat_participants (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_photo = fetch_ds_type_photo (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_settings = fetch_ds_type_peer_notify_settings (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exported_invite = fetch_ds_type_exported_chat_invite (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->bot_info = (void *)fetch_ds_type_vector (field6); + return result; +} +struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite_already (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; } + struct tl_ds_chat_invite * result = talloc0 (sizeof (*result)); + result->magic = 0x5a686d7c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat = fetch_ds_type_chat (field1); + return result; +} +struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; } + struct tl_ds_chat_invite * result = talloc0 (sizeof (*result)); + result->magic = 0xce917dcd; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_chat_located *fetch_ds_constructor_chat_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return 0; } + struct tl_ds_chat_located * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->distance = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_chat_participant *fetch_ds_constructor_chat_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return 0; } + struct tl_ds_chat_participant * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->inviter_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; } + struct tl_ds_chat_participants * result = talloc0 (sizeof (*result)); + result->magic = 0x0fd2bb8a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; } + struct tl_ds_chat_participants * result = talloc0 (sizeof (*result)); + result->magic = 0x7841b415; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->participants = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; } + struct tl_ds_chat_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x37c1011c; + return result; +} +struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; } + struct tl_ds_chat_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x6153276a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo_small = fetch_ds_type_file_location (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo_big = fetch_ds_type_file_location (field2); + return result; +} +struct tl_ds_client_d_h_inner_data *fetch_ds_constructor_client_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return 0; } + struct tl_ds_client_d_h_inner_data * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->retry_id = fetch_ds_type_bare_long (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_b = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_config *fetch_ds_constructor_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return 0; } + struct tl_ds_config * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->expires = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->test_mode = fetch_ds_type_bool (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->this_dc = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->dc_options = (void *)fetch_ds_type_vector (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_size_max = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->broadcast_size_max = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->forwarded_count_max = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->online_update_period_ms = fetch_ds_type_bare_int (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->offline_blur_timeout_ms = fetch_ds_type_bare_int (field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->offline_idle_timeout_ms = fetch_ds_type_bare_int (field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->online_cloud_timeout_ms = fetch_ds_type_bare_int (field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_cloud_delay_ms = fetch_ds_type_bare_int (field13); + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_default_delay_ms = fetch_ds_type_bare_int (field14); + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_big_size = fetch_ds_type_bare_int (field15); + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->push_chat_period_ms = fetch_ds_type_bare_int (field16); + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->push_chat_limit = fetch_ds_type_bare_int (field17); + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->disabled_features = (void *)fetch_ds_type_vector (field18); + return result; +} +struct tl_ds_contact *fetch_ds_constructor_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return 0; } + struct tl_ds_contact * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mutual = fetch_ds_type_bool (field2); + return result; +} +struct tl_ds_contact_blocked *fetch_ds_constructor_contact_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return 0; } + struct tl_ds_contact_blocked * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_contact_found *fetch_ds_constructor_contact_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return 0; } + struct tl_ds_contact_found * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; } + struct tl_ds_contact_link * result = talloc0 (sizeof (*result)); + result->magic = 0x5f4f9247; + return result; +} +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_none (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; } + struct tl_ds_contact_link * result = talloc0 (sizeof (*result)); + result->magic = 0xfeedd3ad; + return result; +} +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_has_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; } + struct tl_ds_contact_link * result = talloc0 (sizeof (*result)); + result->magic = 0x268f3f59; + return result; +} +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; } + struct tl_ds_contact_link * result = talloc0 (sizeof (*result)); + result->magic = 0xd502c2d0; + return result; +} +struct tl_ds_contact_status *fetch_ds_constructor_contact_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return 0; } + struct tl_ds_contact_status * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->status = fetch_ds_type_user_status (field2); + return result; +} +struct tl_ds_contact_suggested *fetch_ds_constructor_contact_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return 0; } + struct tl_ds_contact_suggested * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mutual_contacts = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_dc_option *fetch_ds_constructor_dc_option_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; } + struct tl_ds_dc_option * result = talloc0 (sizeof (*result)); + result->magic = 0x2ec2a43c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hostname = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ip_address = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->port = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_dc_option *fetch_ds_constructor_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; } + struct tl_ds_dc_option * result = talloc0 (sizeof (*result)); + result->magic = 0x05d8c6cc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ip_address = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->port = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; } + struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0x204d3878; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ttl = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_decrypted_message_media (field4); + return result; +} +struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; } + struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0x73164160; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_decrypted_message_action (field2); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xa1733aec; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ttl_seconds = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_read_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x0c4f40be; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->random_ids = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x65614304; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->random_ids = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x8ac1f475; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->random_ids = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_flush_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x6719e45c; + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_resend (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x511110b0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->start_seq_no = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->end_seq_no = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xf3048883; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->layer = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xccb27641; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_send_message_action (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_request_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xf3c9611b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exchange_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_a = fetch_ds_type_bare_bytes (field2); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_accept_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x6fe1735b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exchange_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_b = fetch_ds_type_bare_bytes (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_long (field3); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_abort_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xdd05ec6b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exchange_id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_commit_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xec2e0b9b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exchange_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_noop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; } + struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xa82fdd63; + return result; +} +struct tl_ds_decrypted_message_layer *fetch_ds_constructor_decrypted_message_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return 0; } + struct tl_ds_decrypted_message_layer * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_bytes = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->layer = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->in_seq_no = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->out_seq_no = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_decrypted_message (field5); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x089f5c4a; + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x32798a8c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->str_thumb = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_w = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_h = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field8); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x35480a59; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->latitude = fetch_ds_type_bare_double (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->longitude = fetch_ds_type_bare_double (field2); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x588a0a97; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_number = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xb095434b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->str_thumb = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_w = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_h = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file_name = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field8); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x524a415d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->str_thumb = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_w = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_h = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field10); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x57e0a9cb; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field5); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_external_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xfa95b0dd; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_photo_size (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->attributes = (void *)fetch_ds_type_vector (field8); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x4cee6ef3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->str_thumb = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_w = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb_h = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field9); + return result; +} +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; } + struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x6080758f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_bytes (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->iv = fetch_ds_type_bare_bytes (field4); + return result; +} +struct tl_ds_dialog *fetch_ds_constructor_dialog (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return 0; } + struct tl_ds_dialog * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_peer (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->top_message = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->read_inbox_max_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->unread_count = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_settings = fetch_ds_type_peer_notify_settings (field5); + return result; +} +struct tl_ds_disabled_feature *fetch_ds_constructor_disabled_feature (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return 0; } + struct tl_ds_disabled_feature * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->feature = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->description = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_document *fetch_ds_constructor_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; } + struct tl_ds_document * result = talloc0 (sizeof (*result)); + result->magic = 0x36f8c871; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_document *fetch_ds_constructor_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; } + struct tl_ds_document * result = talloc0 (sizeof (*result)); + result->magic = 0xf9a39f4f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_photo_size (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->attributes = (void *)fetch_ds_type_vector (field8); + return result; +} +struct tl_ds_document *fetch_ds_constructor_document_l19 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; } + struct tl_ds_document * result = talloc0 (sizeof (*result)); + result->magic = 0x9efc6326; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file_name = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_photo_size (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field9); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_image_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x6c37c15c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_animated (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x11b58939; + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x994c9882; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->alt = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x3a556302; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->alt = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->stickerset = fetch_ds_type_input_sticker_set (field2); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x5910cccb; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x051448e5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_filename (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; } + struct tl_ds_document_attribute * result = talloc0 (sizeof (*result)); + result->magic = 0x15590068; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file_name = fetch_ds_type_bare_string (field1); + return result; +} +double *fetch_ds_constructor_double (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return 0; } + double * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 8); + *result = fetch_double (); + return result; +} +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; } + struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result)); + result->magic = 0xab7ec0a0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_waiting (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; } + struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result)); + result->magic = 0x3bf703dc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participant_id = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_requested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; } + struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result)); + result->magic = 0xc878527e; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participant_id = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_a = fetch_ds_type_bare_bytes (field6); + return result; +} +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; } + struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result)); + result->magic = 0xfa56ce36; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participant_id = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_a_or_b = fetch_ds_type_bare_bytes (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_long (field7); + return result; +} +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_discarded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; } + struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result)); + result->magic = 0x13d6dd27; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; } + struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0xc21f497e; + return result; +} +struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; } + struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0x4a70994c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; } + struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0xed18c118; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bytes = fetch_ds_type_bare_bytes (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_encrypted_file (field5); + return result; +} +struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; } + struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0x23734b06; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bytes = fetch_ds_type_bare_bytes (field4); + return result; +} +struct tl_ds_error *fetch_ds_constructor_error (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return 0; } + struct tl_ds_error * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->code = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->text = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; } + struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result)); + result->magic = 0x69df3769; + return result; +} +struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_exported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; } + struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result)); + result->magic = 0xfc2e05bc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->link = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_file_location *fetch_ds_constructor_file_location_unavailable (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; } + struct tl_ds_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x7c596b46; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->volume_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->local_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->secret = fetch_ds_type_bare_long (field3); + return result; +} +struct tl_ds_file_location *fetch_ds_constructor_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; } + struct tl_ds_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x53d69076; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->volume_id = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->local_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->secret = fetch_ds_type_bare_long (field4); + return result; +} +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; } + struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result)); + result->magic = 0x60311a9b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; } + struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result)); + result->magic = 0x4505f8e1; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field6); + return result; +} +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; } + struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result)); + result->magic = 0xd34fa24e; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_message_action (field5); + return result; +} +struct tl_ds_geo_point *fetch_ds_constructor_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; } + struct tl_ds_geo_point * result = talloc0 (sizeof (*result)); + result->magic = 0x1117dd5f; + return result; +} +struct tl_ds_geo_point *fetch_ds_constructor_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; } + struct tl_ds_geo_point * result = talloc0 (sizeof (*result)); + result->magic = 0x2049d70c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->longitude = fetch_ds_type_bare_double (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->latitude = fetch_ds_type_bare_double (field2); + return result; +} +struct tl_ds_imported_contact *fetch_ds_constructor_imported_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return 0; } + struct tl_ds_imported_contact * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->client_id = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_app_event *fetch_ds_constructor_input_app_event (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return 0; } + struct tl_ds_input_app_event * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->time = fetch_ds_type_bare_double (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_bare_long (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->data = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_input_audio *fetch_ds_constructor_input_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; } + struct tl_ds_input_audio * result = talloc0 (sizeof (*result)); + result->magic = 0xd95adc84; + return result; +} +struct tl_ds_input_audio *fetch_ds_constructor_input_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; } + struct tl_ds_input_audio * result = talloc0 (sizeof (*result)); + result->magic = 0x77d440ff; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; } + struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x1ca48f57; + return result; +} +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; } + struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x94254732; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->crop = fetch_ds_type_input_photo_crop (field2); + return result; +} +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; } + struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result)); + result->magic = 0xb2e1bf08; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_input_photo (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->crop = fetch_ds_type_input_photo_crop (field2); + return result; +} +struct tl_ds_input_contact *fetch_ds_constructor_input_phone_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return 0; } + struct tl_ds_input_contact * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->client_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_input_document *fetch_ds_constructor_input_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; } + struct tl_ds_input_document * result = talloc0 (sizeof (*result)); + result->magic = 0x72f0eaae; + return result; +} +struct tl_ds_input_document *fetch_ds_constructor_input_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; } + struct tl_ds_input_document * result = talloc0 (sizeof (*result)); + result->magic = 0x18798952; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_encrypted_chat *fetch_ds_constructor_input_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return 0; } + struct tl_ds_input_encrypted_chat * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; } + struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0x1837c364; + return result; +} +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; } + struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0x64bd0306; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->parts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->md5_checksum = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; } + struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0x5a17b5e5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; } + struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result)); + result->magic = 0x2dc173c8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->parts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_input_file *fetch_ds_constructor_input_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; } + struct tl_ds_input_file * result = talloc0 (sizeof (*result)); + result->magic = 0xf52ff27f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->parts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->md5_checksum = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_input_file *fetch_ds_constructor_input_file_big (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; } + struct tl_ds_input_file * result = talloc0 (sizeof (*result)); + result->magic = 0xfa4f0bb5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->parts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->name = fetch_ds_type_bare_string (field3); + return result; +} +struct tl_ds_input_file_location *fetch_ds_constructor_input_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; } + struct tl_ds_input_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x14637196; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->volume_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->local_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->secret = fetch_ds_type_bare_long (field3); + return result; +} +struct tl_ds_input_file_location *fetch_ds_constructor_input_video_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; } + struct tl_ds_input_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x3d0364ec; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_file_location *fetch_ds_constructor_input_encrypted_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; } + struct tl_ds_input_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0xf5235d55; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_file_location *fetch_ds_constructor_input_audio_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; } + struct tl_ds_input_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x74dc404d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_file_location *fetch_ds_constructor_input_document_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; } + struct tl_ds_input_file_location * result = talloc0 (sizeof (*result)); + result->magic = 0x4e45abe9; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_geo_chat *fetch_ds_constructor_input_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return 0; } + struct tl_ds_input_geo_chat * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; } + struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result)); + result->magic = 0xe4c123d6; + return result; +} +struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; } + struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result)); + result->magic = 0xf3b7acc9; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->latitude = fetch_ds_type_bare_double (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->longitude = fetch_ds_type_bare_double (field2); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x9664f57f; + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xf7aff1c0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xe9bfb4f3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_input_photo (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xf9c44144; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo_point = fetch_ds_type_input_geo_point (field1); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xa6e45987; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_number = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field3); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xe13fd4bc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field5); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x96fb97dc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_input_file (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field6); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x936a4ebd; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->video_id = fetch_ds_type_input_video (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x4e498cab; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field3); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x89938781; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->audio_id = fetch_ds_type_input_audio (field1); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xffe76b78; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->attributes = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x41481486; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_input_file (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_input_file (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->attributes = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0xd184e841; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->document_id = fetch_ds_type_input_document (field1); + return result; +} +struct tl_ds_input_media *fetch_ds_constructor_input_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; } + struct tl_ds_input_media * result = talloc0 (sizeof (*result)); + result->magic = 0x2827a81a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo_point = fetch_ds_type_input_geo_point (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->address = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->provider = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->venue_id = fetch_ds_type_bare_string (field5); + return result; +} +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; } + struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0xb8bc5b0c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_input_peer (field1); + return result; +} +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; } + struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x193b4417; + return result; +} +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; } + struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x4a95e84e; + return result; +} +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; } + struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0xa429b886; + return result; +} +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_geo_chat_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; } + struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x4d8ddec8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo_peer = fetch_ds_type_input_geo_chat (field1); + return result; +} +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; } + struct tl_ds_input_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x7f3b18ea; + return result; +} +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; } + struct tl_ds_input_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x7da07ec9; + return result; +} +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; } + struct tl_ds_input_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x1023dbe8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; } + struct tl_ds_input_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x9b447325; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; } + struct tl_ds_input_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x179be863; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; } + struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result)); + result->magic = 0xf03064d8; + return result; +} +struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; } + struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result)); + result->magic = 0xe86a2c74; + return result; +} +struct tl_ds_input_peer_notify_settings *fetch_ds_constructor_input_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return 0; } + struct tl_ds_input_peer_notify_settings * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mute_until = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->sound = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->show_previews = fetch_ds_type_bool (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->events_mask = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_input_photo *fetch_ds_constructor_input_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; } + struct tl_ds_input_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x1cd7bf0d; + return result; +} +struct tl_ds_input_photo *fetch_ds_constructor_input_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; } + struct tl_ds_input_photo * result = talloc0 (sizeof (*result)); + result->magic = 0xfb95c6c4; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop_auto (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; } + struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result)); + result->magic = 0xade6b004; + return result; +} +struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; } + struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result)); + result->magic = 0xd9915325; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->crop_left = fetch_ds_type_bare_double (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->crop_top = fetch_ds_type_bare_double (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->crop_width = fetch_ds_type_bare_double (field3); + return result; +} +struct tl_ds_input_privacy_key *fetch_ds_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return 0; } + struct tl_ds_input_privacy_key * result = talloc0 (sizeof (*result)); + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x0d09e07b; + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x184b35ce; + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x131cc67f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x0ba52007; + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0xd66b66c9; + return result; +} +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; } + struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x90110467; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; } + struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result)); + result->magic = 0xffb62b95; + return result; +} +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; } + struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result)); + result->magic = 0x9de7a269; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_short_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; } + struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result)); + result->magic = 0x861cc8a0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->short_name = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_input_user *fetch_ds_constructor_input_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; } + struct tl_ds_input_user * result = talloc0 (sizeof (*result)); + result->magic = 0xb98886cf; + return result; +} +struct tl_ds_input_user *fetch_ds_constructor_input_user_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; } + struct tl_ds_input_user * result = talloc0 (sizeof (*result)); + result->magic = 0xf7c1b13f; + return result; +} +struct tl_ds_input_user *fetch_ds_constructor_input_user_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; } + struct tl_ds_input_user * result = talloc0 (sizeof (*result)); + result->magic = 0x86e94f65; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_input_user *fetch_ds_constructor_input_user_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; } + struct tl_ds_input_user * result = talloc0 (sizeof (*result)); + result->magic = 0x655e74ff; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_input_video *fetch_ds_constructor_input_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; } + struct tl_ds_input_video * result = talloc0 (sizeof (*result)); + result->magic = 0x5508ec75; + return result; +} +struct tl_ds_input_video *fetch_ds_constructor_input_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; } + struct tl_ds_input_video * result = talloc0 (sizeof (*result)); + result->magic = 0xee579652; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + return result; +} +int *fetch_ds_constructor_int (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return 0; } + int * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 4); + *result = fetch_int (); + return result; +} +struct tl_ds_int128 *fetch_ds_constructor_int128 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return 0; } + struct tl_ds_int128 * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f0 = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f1 = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_int256 *fetch_ds_constructor_int256 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return 0; } + struct tl_ds_int256 * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f0 = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f1 = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f2 = fetch_ds_type_bare_long (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->f3 = fetch_ds_type_bare_long (field4); + return result; +} +struct tl_ds_keyboard_button *fetch_ds_constructor_keyboard_button (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return 0; } + struct tl_ds_keyboard_button * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->text = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_keyboard_button_row *fetch_ds_constructor_keyboard_button_row (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return 0; } + struct tl_ds_keyboard_button_row * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->buttons = (void *)fetch_ds_type_vector (field1); + return result; +} +long long *fetch_ds_constructor_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return 0; } + long long * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 8); + *result = fetch_long (); + return result; +} +struct tl_ds_message *fetch_ds_constructor_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; } + struct tl_ds_message * result = talloc0 (sizeof (*result)); + result->magic = 0x83e5de54; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_message *fetch_ds_constructor_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; } + struct tl_ds_message * result = talloc0 (sizeof (*result)); + result->magic = 0xc3060325; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_id = fetch_ds_type_peer (field4); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_from_id = fetch_ds_type_bare_int (field5); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_date = fetch_ds_type_bare_int (field6); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_to_msg_id = fetch_ds_type_bare_int (field7); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field10); + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_markup = fetch_ds_type_reply_markup (field11); + } + return result; +} +struct tl_ds_message *fetch_ds_constructor_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; } + struct tl_ds_message * result = talloc0 (sizeof (*result)); + result->magic = 0x1d86f70e; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_id = fetch_ds_type_peer (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_message_action (field6); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xb6aef7b0; + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xa6638b9a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_title (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xb5a1ce5a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x7fcb13a8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field1); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x95e3fbef; + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_add_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x5e3cfc4b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xb2ae9b0c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x6f038ebc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->address = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_checkin (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x0c7d53de; + return result; +} +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_joined_by_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; } + struct tl_ds_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xf89cf5e8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->inviter_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x3ded6320; + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x3d8ce53d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x5bcf1675; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->video = fetch_ds_type_video (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_geo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x56e0d474; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo = fetch_ds_type_geo_point (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x5e7d2f39; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_number = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_unsupported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x9f84f49e; + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x2fda2204; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->document = fetch_ds_type_document (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xc6b68300; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->audio = fetch_ds_type_audio (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xa32dd600; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->webpage = fetch_ds_type_web_page (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0x7912b71f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo = fetch_ds_type_geo_point (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->address = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->provider = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->venue_id = fetch_ds_type_bare_string (field5); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xc8c45a2a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field1); + return result; +} +struct tl_ds_message_media *fetch_ds_constructor_message_media_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; } + struct tl_ds_message_media * result = talloc0 (sizeof (*result)); + result->magic = 0xa2d24290; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->video = fetch_ds_type_video (field1); + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0x57e2f66c; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0x9609a51c; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0x9fc00e65; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0x56e9f0e4; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0xd95e73bb; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0x9eddf188; + return result; +} +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; } + struct tl_ds_messages_filter * result = talloc0 (sizeof (*result)); + result->magic = 0xcfc87522; + return result; +} +struct tl_ds_nearest_dc *fetch_ds_constructor_nearest_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return 0; } + struct tl_ds_nearest_dc * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->country = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->this_dc = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nearest_dc = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_notify_peer *fetch_ds_constructor_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; } + struct tl_ds_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x9fd40bd8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_peer (field1); + return result; +} +struct tl_ds_notify_peer *fetch_ds_constructor_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; } + struct tl_ds_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0xb4c83b4c; + return result; +} +struct tl_ds_notify_peer *fetch_ds_constructor_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; } + struct tl_ds_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0xc007cec3; + return result; +} +struct tl_ds_notify_peer *fetch_ds_constructor_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; } + struct tl_ds_notify_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x74d07c60; + return result; +} +struct tl_ds_null *fetch_ds_constructor_null (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return 0; } + struct tl_ds_null * result = talloc0 (sizeof (*result)); + return result; +} +struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; } + struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result)); + result->magic = 0x83c95aec; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pq = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->p = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->q = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce = fetch_ds_type_bare_int256 (field6); + return result; +} +struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data_temp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; } + struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result)); + result->magic = 0x3c6a84d4; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pq = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->p = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->q = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce = fetch_ds_type_bare_int256 (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->expires_in = fetch_ds_type_bare_int (field7); + return result; +} +struct tl_ds_peer *fetch_ds_constructor_peer_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; } + struct tl_ds_peer * result = talloc0 (sizeof (*result)); + result->magic = 0x9db1bc6d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_peer *fetch_ds_constructor_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; } + struct tl_ds_peer * result = talloc0 (sizeof (*result)); + result->magic = 0xbad0e5bb; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; } + struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result)); + result->magic = 0xadd53cb3; + return result; +} +struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; } + struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result)); + result->magic = 0x6d1ded88; + return result; +} +struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; } + struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result)); + result->magic = 0x70a68512; + return result; +} +struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; } + struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result)); + result->magic = 0x8d5e11ee; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mute_until = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->sound = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->show_previews = fetch_ds_type_bool (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->events_mask = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_photo *fetch_ds_constructor_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; } + struct tl_ds_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x2331b22d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_photo *fetch_ds_constructor_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; } + struct tl_ds_photo * result = talloc0 (sizeof (*result)); + result->magic = 0xc3838076; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo = fetch_ds_type_geo_point (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->sizes = (void *)fetch_ds_type_vector (field6); + return result; +} +struct tl_ds_photo *fetch_ds_constructor_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; } + struct tl_ds_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x22b56751; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo = fetch_ds_type_geo_point (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->sizes = (void *)fetch_ds_type_vector (field7); + return result; +} +struct tl_ds_photo_size *fetch_ds_constructor_photo_size_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; } + struct tl_ds_photo_size * result = talloc0 (sizeof (*result)); + result->magic = 0x0e17e23c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_photo_size *fetch_ds_constructor_photo_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; } + struct tl_ds_photo_size * result = talloc0 (sizeof (*result)); + result->magic = 0x77bfb61b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->location = fetch_ds_type_file_location (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_photo_size *fetch_ds_constructor_photo_cached_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; } + struct tl_ds_photo_size * result = talloc0 (sizeof (*result)); + result->magic = 0xe9a734fa; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->location = fetch_ds_type_file_location (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bytes = fetch_ds_type_bare_bytes (field5); + return result; +} +struct tl_ds_privacy_key *fetch_ds_constructor_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return 0; } + struct tl_ds_privacy_key * result = talloc0 (sizeof (*result)); + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0xfffe1bac; + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x65427b82; + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x4d5bbe0c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0xf888fa1a; + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x8b73e763; + return result; +} +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; } + struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result)); + result->magic = 0x0c7f49b7; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_received_notify_message *fetch_ds_constructor_received_notify_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return 0; } + struct tl_ds_received_notify_message * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_hide (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; } + struct tl_ds_reply_markup * result = talloc0 (sizeof (*result)); + result->magic = 0xa03e5b85; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_force_reply (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; } + struct tl_ds_reply_markup * result = talloc0 (sizeof (*result)); + result->magic = 0xf4108aa0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_markup (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; } + struct tl_ds_reply_markup * result = talloc0 (sizeof (*result)); + result->magic = 0x3502758c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->rows = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_res_p_q *fetch_ds_constructor_res_p_q (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return 0; } + struct tl_ds_res_p_q * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pq = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->server_public_key_fingerprints = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_typing_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x16bf744e; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_cancel_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xfd5ec8f5; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xa187d66f; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x92042ff7; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xe9763aec; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->progress = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xd52f73f7; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xe6ac8a6f; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xf351d7ab; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->progress = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_photo_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xd1d34a26; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->progress = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x8faee98e; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0xaa0cd9e4; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->progress = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_geo_location_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x176f8ba1; + return result; +} +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_choose_contact_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; } + struct tl_ds_send_message_action * result = talloc0 (sizeof (*result)); + result->magic = 0x628cbc6f; + return result; +} +struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; } + struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result)); + result->magic = 0x79cb045d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce_hash = fetch_ds_type_bare_int128 (field3); + return result; +} +struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; } + struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result)); + result->magic = 0xd0e8075c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->encrypted_answer = fetch_ds_type_bare_string (field3); + return result; +} +struct tl_ds_server_d_h_inner_data *fetch_ds_constructor_server_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return 0; } + struct tl_ds_server_d_h_inner_data * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dh_prime = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_a = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_time = fetch_ds_type_bare_int (field6); + return result; +} +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; } + struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result)); + result->magic = 0x3bcbf734; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce_hash1 = fetch_ds_type_bare_int128 (field3); + return result; +} +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_retry (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; } + struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result)); + result->magic = 0x46dc1fb9; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce_hash2 = fetch_ds_type_bare_int128 (field3); + return result; +} +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; } + struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result)); + result->magic = 0xa69dae02; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->nonce = fetch_ds_type_bare_int128 (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->server_nonce = fetch_ds_type_bare_int128 (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_nonce_hash3 = fetch_ds_type_bare_int128 (field3); + return result; +} +struct tl_ds_sticker_pack *fetch_ds_constructor_sticker_pack (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return 0; } + struct tl_ds_sticker_pack * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->emoticon = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->documents = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_sticker_set *fetch_ds_constructor_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return 0; } + struct tl_ds_sticker_set * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->short_name = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_string *fetch_ds_constructor_string (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return 0; } + struct tl_ds_string * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 4); + int l = prefetch_strlen (); + assert (l >= 0); + result->len = l; + result->data = talloc (l + 1); + result->data[l] = 0; + memcpy (result->data, fetch_str (l), l); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_new_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x1f2b0afd; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_message (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_message_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x4e90bfd6; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random_id = fetch_ds_type_bare_long (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0xa20db0e5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x5c486927; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_send_message_action (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_chat_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x9a65ea1f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_send_message_action (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x07761198; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->participants = fetch_ds_type_chat_participants (field1); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x1bfbd823; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->status = fetch_ds_type_user_status (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0xa7332b73; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->username = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x95313b0c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_user_profile_photo (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->previous = fetch_ds_type_bool (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_contact_registered (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x2575bbb9; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_contact_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x9d2e67c5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->my_link = fetch_ds_type_contact_link (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->foreign_link = fetch_ds_type_contact_link (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_new_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x8f06529a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->auth_key_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->device = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->location = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_new_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x5a68e3f7; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->geo_message = fetch_ds_type_geo_chat_message (field1); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_new_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x12bcbd9a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->encr_message = fetch_ds_type_encrypted_message (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->qts = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_encrypted_chat_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x1710f156; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_encryption (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0xb4a2e88d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->encr_chat = fetch_ds_type_encrypted_chat (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_encrypted_messages_read (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x38fe25b7; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->max_date = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_chat_participant_add (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x3a0eeb22; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->inviter_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_chat_participant_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x6e5f8c22; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_dc_options (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x8e5e9873; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->dc_options = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x80ece81a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->blocked = fetch_ds_type_bool (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0xbec268ef; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_peer = fetch_ds_type_notify_peer (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_settings = fetch_ds_type_peer_notify_settings (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_service_notification (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x382dd3e4; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message_text = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->popup = fetch_ds_type_bool (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_privacy (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0xee3b272a; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_privacy_key (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->rules = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_user_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x12b9417b; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_read_history_inbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x9961fd5c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_peer (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->max_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_read_history_outbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x2f2f21bf; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->peer = fetch_ds_type_peer (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->max_id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x2cc36971; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->webpage = fetch_ds_type_web_page (field1); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_read_messages_contents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x68c13933; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_update *fetch_ds_constructor_update_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; } + struct tl_ds_update * result = talloc0 (sizeof (*result)); + result->magic = 0x03114739; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_updates *fetch_ds_constructor_updates_too_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0xe317af7e; + return result; +} +struct tl_ds_updates *fetch_ds_constructor_update_short_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0xed5c2127; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field7); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_from_id = fetch_ds_type_bare_int (field8); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_date = fetch_ds_type_bare_int (field9); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_to_msg_id = fetch_ds_type_bare_int (field10); + } + return result; +} +struct tl_ds_updates *fetch_ds_constructor_update_short_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0x52238b3c; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field8); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_from_id = fetch_ds_type_bare_int (field9); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_date = fetch_ds_type_bare_int (field10); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_to_msg_id = fetch_ds_type_bare_int (field11); + } + return result; +} +struct tl_ds_updates *fetch_ds_constructor_update_short (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0x78d4dec1; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->update = fetch_ds_type_update (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_updates *fetch_ds_constructor_updates_combined (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0x725b04c3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->updates = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq_start = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field6); + return result; +} +struct tl_ds_updates *fetch_ds_constructor_updates (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; } + struct tl_ds_updates * result = talloc0 (sizeof (*result)); + result->magic = 0x74ae4240; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->updates = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_user *fetch_ds_constructor_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; } + struct tl_ds_user * result = talloc0 (sizeof (*result)); + result->magic = 0x200250ba; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_user *fetch_ds_constructor_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; } + struct tl_ds_user * result = talloc0 (sizeof (*result)); + result->magic = 0x22e49072; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field3); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field4); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field5); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->username = fetch_ds_type_bare_string (field6); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone = fetch_ds_type_bare_string (field7); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_user_profile_photo (field8); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->status = fetch_ds_type_user_status (field9); + } + if (PTR2INT (var0) & (1 << 14)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bot_info_version = fetch_ds_type_bare_int (field10); + } + return result; +} +struct tl_ds_user_full *fetch_ds_constructor_user_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return 0; } + struct tl_ds_user_full * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user = fetch_ds_type_user (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->link = fetch_ds_type_contacts_link (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->profile_photo = fetch_ds_type_photo (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->notify_settings = fetch_ds_type_peer_notify_settings (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->blocked = fetch_ds_type_bool (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bot_info = fetch_ds_type_bot_info (field6); + return result; +} +struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; } + struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result)); + result->magic = 0x4f11bae1; + return result; +} +struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; } + struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result)); + result->magic = 0xd559d8c8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo_small = fetch_ds_type_file_location (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo_big = fetch_ds_type_file_location (field3); + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0x09d05049; + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_online (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0xedb93949; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->expires = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_offline (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0x008c703f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->was_online = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_recently (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0xe26f42f1; + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_last_week (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0x07bf09fc; + return result; +} +struct tl_ds_user_status *fetch_ds_constructor_user_status_last_month (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; } + struct tl_ds_user_status * result = talloc0 (sizeof (*result)); + result->magic = 0x77ebc742; + return result; +} +struct tl_ds_vector *fetch_ds_constructor_vector (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return 0; } + if (ODDP(T->params[0])) { return 0; } + struct paramed_type *var0 = T->params[0]; assert (var0); + struct tl_ds_vector * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 4); + result->f1 = talloc (4); *result->f1 = prefetch_int (); struct paramed_type *var1 = INT2PTR (fetch_int ()); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + result->f2 = talloc0 (multiplicity3 * sizeof (void *)); + { + int i = 0; + while (i < multiplicity3) { + result->f2[i ++] = fetch_ds_type_any (field3); + } + } + return result; +} +struct tl_ds_video *fetch_ds_constructor_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; } + struct tl_ds_video * result = talloc0 (sizeof (*result)); + result->magic = 0xc10658a8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_video *fetch_ds_constructor_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; } + struct tl_ds_video * result = talloc0 (sizeof (*result)); + result->magic = 0xee9f4a4d; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_photo_size (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field10); + return result; +} +struct tl_ds_video *fetch_ds_constructor_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; } + struct tl_ds_video * result = talloc0 (sizeof (*result)); + result->magic = 0x388fa391; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->caption = fetch_ds_type_bare_string (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mime_type = fetch_ds_type_bare_string (field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->size = fetch_ds_type_bare_int (field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->thumb = fetch_ds_type_photo_size (field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc_id = fetch_ds_type_bare_int (field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->w = fetch_ds_type_bare_int (field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->h = fetch_ds_type_bare_int (field12); + return result; +} +struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; } + struct tl_ds_wall_paper * result = talloc0 (sizeof (*result)); + result->magic = 0xccb03657; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->sizes = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->color = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper_solid (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; } + struct tl_ds_wall_paper * result = talloc0 (sizeof (*result)); + result->magic = 0x63117f24; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bg_color = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->color = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_web_page *fetch_ds_constructor_web_page_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; } + struct tl_ds_web_page * result = talloc0 (sizeof (*result)); + result->magic = 0xeb1477e8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_web_page *fetch_ds_constructor_web_page_pending (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; } + struct tl_ds_web_page * result = talloc0 (sizeof (*result)); + result->magic = 0xc586da1c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_web_page *fetch_ds_constructor_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; } + struct tl_ds_web_page * result = talloc0 (sizeof (*result)); + result->magic = 0xa31ea0b5; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_long (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->url = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->display_url = fetch_ds_type_bare_string (field4); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_bare_string (field5); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->site_name = fetch_ds_type_bare_string (field6); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field7); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->description = fetch_ds_type_bare_string (field8); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field9); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->embed_url = fetch_ds_type_bare_string (field10); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->embed_type = fetch_ds_type_bare_string (field11); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->embed_width = fetch_ds_type_bare_int (field12); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->embed_height = fetch_ds_type_bare_int (field13); + } + if (PTR2INT (var0) & (1 << 7)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->duration = fetch_ds_type_bare_int (field14); + } + if (PTR2INT (var0) & (1 << 8)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->author = fetch_ds_type_bare_string (field15); + } + return result; +} +struct tl_ds_account_authorizations *fetch_ds_constructor_account_authorizations (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return 0; } + struct tl_ds_account_authorizations * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->authorizations = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_account_password *fetch_ds_constructor_account_no_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; } + struct tl_ds_account_password * result = talloc0 (sizeof (*result)); + result->magic = 0x96dabc18; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_salt = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field2); + return result; +} +struct tl_ds_account_password *fetch_ds_constructor_account_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; } + struct tl_ds_account_password * result = talloc0 (sizeof (*result)); + result->magic = 0x7c18141c; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->current_salt = fetch_ds_type_bare_bytes (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_salt = fetch_ds_type_bare_bytes (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hint = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->has_recovery = fetch_ds_type_bool (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field5); + return result; +} +struct tl_ds_account_password_input_settings *fetch_ds_constructor_account_password_input_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return 0; } + struct tl_ds_account_password_input_settings * result = talloc0 (sizeof (*result)); + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_salt = fetch_ds_type_bare_bytes (field2); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_password_hash = fetch_ds_type_bare_bytes (field3); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hint = fetch_ds_type_bare_string (field4); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->email = fetch_ds_type_bare_string (field5); + } + return result; +} +struct tl_ds_account_password_settings *fetch_ds_constructor_account_password_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return 0; } + struct tl_ds_account_password_settings * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->email = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_account_privacy_rules *fetch_ds_constructor_account_privacy_rules (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return 0; } + struct tl_ds_account_privacy_rules * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->rules = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_account_sent_change_phone_code *fetch_ds_constructor_account_sent_change_phone_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return 0; } + struct tl_ds_account_sent_change_phone_code * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_code_hash = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->send_call_timeout = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_auth_authorization *fetch_ds_constructor_auth_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return 0; } + struct tl_ds_auth_authorization * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user = fetch_ds_type_user (field1); + return result; +} +struct tl_ds_auth_checked_phone *fetch_ds_constructor_auth_checked_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return 0; } + struct tl_ds_auth_checked_phone * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_registered = fetch_ds_type_bool (field1); + return result; +} +struct tl_ds_auth_exported_authorization *fetch_ds_constructor_auth_exported_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return 0; } + struct tl_ds_auth_exported_authorization * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bytes = fetch_ds_type_bare_bytes (field2); + return result; +} +struct tl_ds_auth_password_recovery *fetch_ds_constructor_auth_password_recovery (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return 0; } + struct tl_ds_auth_password_recovery * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->email_pattern = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; } + struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result)); + result->magic = 0xefed51d9; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_registered = fetch_ds_type_bool (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_code_hash = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->send_call_timeout = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->is_password = fetch_ds_type_bool (field4); + return result; +} +struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_app_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; } + struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result)); + result->magic = 0xe325edcf; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_registered = fetch_ds_type_bool (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_code_hash = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->send_call_timeout = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->is_password = fetch_ds_type_bool (field4); + return result; +} +struct tl_ds_binlog_encr_key *fetch_ds_constructor_binlog_encr_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return 0; } + struct tl_ds_binlog_encr_key * result = talloc0 (sizeof (*result)); + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = talloc0 (multiplicity1 * sizeof (void *)); + { + int i = 0; + while (i < multiplicity1) { + result->key[i ++] =fetch_ds_type_any (field1); + } + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_start (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x3b06de69; + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0xf96feb32; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->name = fetch_ds_type_bare_string (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ip = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->port = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x7c0d22d8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->flags = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->name = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ip = fetch_ds_type_bare_string (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->port = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_auth_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x71e8c156; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_binlog_encr_key (field2); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_default_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x9e83dbdc; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_signed (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x26451bb5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->dc = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_our_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x68a870e8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_dh_params (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0xeaeb7826; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->root = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->prime = fetch_ds_type_bare_binlog_encr_key (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_pts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x2ca8c939; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_qts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0xd95738ac; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->qts = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_date (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x1d0f4b52; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_seq (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x6eeb2989; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0xee1b38e8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x84977251; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin = fetch_ds_type_bare_int (field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field6); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_binlog_encr_key (field7); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g_key = fetch_ds_type_bare_binlog_encr_key (field8); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->state = fetch_ds_type_bare_int (field9); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->ttl = fetch_ds_type_bare_int (field10); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->layer = fetch_ds_type_bare_int (field11); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->in_seq_no = fetch_ds_type_bare_int (field12); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_in_seq_no = fetch_ds_type_bare_int (field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->out_seq_no = fetch_ds_type_bare_int (field14); + } + if (PTR2INT (var0) & (1 << 27)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key_fingerprint = fetch_ds_type_bare_long (field15); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x9d49488d; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->exchange_id = fetch_ds_type_bare_long (field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->key = fetch_ds_type_bare_binlog_encr_key (field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->state = fetch_ds_type_bare_int (field5); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0xac55d447; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x127cf2f9; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->access_hash = fetch_ds_type_bare_long (field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->first_name = fetch_ds_type_bare_string (field4); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_name = fetch_ds_type_bare_string (field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone = fetch_ds_type_bare_string (field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->username = fetch_ds_type_bare_string (field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->real_first_name = fetch_ds_type_bare_string (field9); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->real_last_name = fetch_ds_type_bare_string (field10); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_photo = fetch_ds_type_user_profile_photo (field11); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_read_in = fetch_ds_type_bare_int (field12); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_read_out = fetch_ds_type_bare_int (field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bot_info = fetch_ds_type_bot_info (field14); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x0a10aa92; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->title = fetch_ds_type_bare_string (field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_num = fetch_ds_type_bare_int (field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->participants = (void *)fetch_ds_type_vector (field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->chat_photo = fetch_ds_type_chat_photo (field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->admin = fetch_ds_type_bare_int (field10); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_read_in = fetch_ds_type_bare_int (field11); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->last_read_out = fetch_ds_type_bare_int (field12); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_add_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x535475ea; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->inviter_id = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_del_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x7dd1a1a2; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user_id = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_msg_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x3c873416; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->old_id = fetch_ds_type_bare_long (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->new_id = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x847e77b1; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->lid = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x427cfcdb; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->lid = fetch_ds_type_bare_long (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_type = fetch_ds_type_bare_int (field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_id = fetch_ds_type_bare_int (field5); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_from_id = fetch_ds_type_bare_int (field6); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->fwd_date = fetch_ds_type_bare_int (field7); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field8); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field9); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field10); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->action = fetch_ds_type_message_action (field11); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_id = fetch_ds_type_bare_int (field12); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->reply_markup = fetch_ds_type_reply_markup (field13); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_encr_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x6cf7cabc; + assert (in_remaining () >= 4); + result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->lid = fetch_ds_type_bare_long (field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->from_id = fetch_ds_type_bare_int (field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_type = fetch_ds_type_bare_int (field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->to_id = fetch_ds_type_bare_int (field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->encr_media = fetch_ds_type_decrypted_message_media (field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->encr_action = fetch_ds_type_decrypted_message_action (field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_encrypted_file (field10); + } + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x6dd4d85f; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->lid = fetch_ds_type_bare_long (field1); + return result; +} +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_reset_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; } + struct tl_ds_binlog_update * result = talloc0 (sizeof (*result)); + result->magic = 0x83327955; + return result; +} +struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; } + struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result)); + result->magic = 0x1c138d15; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->blocked = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; } + struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result)); + result->magic = 0x900802a1; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->count = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->blocked = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; } + struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result)); + result->magic = 0xb74ba9d2; + return result; +} +struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; } + struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result)); + result->magic = 0x6f8b8cb2; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->contacts = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_contacts_found *fetch_ds_constructor_contacts_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return 0; } + struct tl_ds_contacts_found * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->results = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_contacts_imported_contacts *fetch_ds_constructor_contacts_imported_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return 0; } + struct tl_ds_contacts_imported_contacts * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->imported = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->retry_contacts = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_contacts_link *fetch_ds_constructor_contacts_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return 0; } + struct tl_ds_contacts_link * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->my_link = fetch_ds_type_contact_link (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->foreign_link = fetch_ds_type_contact_link (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user = fetch_ds_type_user (field3); + return result; +} +struct tl_ds_contacts_suggested *fetch_ds_constructor_contacts_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return 0; } + struct tl_ds_contacts_suggested * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->results = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_geochats_located *fetch_ds_constructor_geochats_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return 0; } + struct tl_ds_geochats_located * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->results = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; } + struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result)); + result->magic = 0xd1526db1; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; } + struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result)); + result->magic = 0xbc5863e8; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->count = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_geochats_stated_message *fetch_ds_constructor_geochats_stated_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return 0; } + struct tl_ds_geochats_stated_message * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_geo_chat_message (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field4); + return result; +} +struct tl_ds_help_app_update *fetch_ds_constructor_help_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; } + struct tl_ds_help_app_update * result = talloc0 (sizeof (*result)); + result->magic = 0x8987f311; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->critical = fetch_ds_type_bool (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->url = fetch_ds_type_bare_string (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->text = fetch_ds_type_bare_string (field4); + return result; +} +struct tl_ds_help_app_update *fetch_ds_constructor_help_no_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; } + struct tl_ds_help_app_update * result = talloc0 (sizeof (*result)); + result->magic = 0xc45a6536; + return result; +} +struct tl_ds_help_invite_text *fetch_ds_constructor_help_invite_text (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return 0; } + struct tl_ds_help_invite_text * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->message = fetch_ds_type_bare_string (field1); + return result; +} +struct tl_ds_help_support *fetch_ds_constructor_help_support (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return 0; } + struct tl_ds_help_support * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->phone_number = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->user = fetch_ds_type_user (field2); + return result; +} +struct tl_ds_messages_affected_history *fetch_ds_constructor_messages_affected_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return 0; } + struct tl_ds_messages_affected_history * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->offset = fetch_ds_type_bare_int (field3); + return result; +} +struct tl_ds_messages_affected_messages *fetch_ds_constructor_messages_affected_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return 0; } + struct tl_ds_messages_affected_messages * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; } + struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result)); + result->magic = 0xe86602c3; + return result; +} +struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; } + struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result)); + result->magic = 0x5ce352ec; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hash = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->packs = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->sets = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->documents = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_messages_chat_full *fetch_ds_constructor_messages_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return 0; } + struct tl_ds_messages_chat_full * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->full_chat = fetch_ds_type_chat_full (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_messages_chats *fetch_ds_constructor_messages_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return 0; } + struct tl_ds_messages_chats * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field1); + return result; +} +struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; } + struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result)); + result->magic = 0xc0e24635; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random = fetch_ds_type_bare_bytes (field1); + return result; +} +struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; } + struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result)); + result->magic = 0x2c221edd; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->g = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->p = fetch_ds_type_bare_bytes (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->version = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->random = fetch_ds_type_bare_bytes (field4); + return result; +} +struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; } + struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result)); + result->magic = 0x15ba6c40; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->dialogs = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; } + struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result)); + result->magic = 0x71e094f3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->count = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->dialogs = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field5); + return result; +} +struct tl_ds_messages_message *fetch_ds_constructor_messages_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return 0; } + struct tl_ds_messages_message * result = talloc0 (sizeof (*result)); + return result; +} +struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; } + struct tl_ds_messages_messages * result = talloc0 (sizeof (*result)); + result->magic = 0x8c718e87; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; } + struct tl_ds_messages_messages * result = talloc0 (sizeof (*result)); + result->magic = 0x0b446ae3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->count = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field4); + return result; +} +struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; } + struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0x560f8935; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field1); + return result; +} +struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; } + struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result)); + result->magic = 0x9493ff32; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->file = fetch_ds_type_encrypted_file (field2); + return result; +} +struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; } + struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result)); + result->magic = 0x4c3d47f3; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; } + struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result)); + result->magic = 0x35a1a663; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->id = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->media = fetch_ds_type_message_media (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts_count = fetch_ds_type_bare_int (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->links = (void *)fetch_ds_type_vector (field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field7); + return result; +} +struct tl_ds_messages_sticker_set *fetch_ds_constructor_messages_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return 0; } + struct tl_ds_messages_sticker_set * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->set = fetch_ds_type_sticker_set (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->packs = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->documents = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; } + struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result)); + result->magic = 0xf1749a22; + return result; +} +struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; } + struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result)); + result->magic = 0x8a8ecd32; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->hash = fetch_ds_type_bare_string (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->stickers = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_photos_photo *fetch_ds_constructor_photos_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return 0; } + struct tl_ds_photos_photo * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->photo = fetch_ds_type_photo (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; } + struct tl_ds_photos_photos * result = talloc0 (sizeof (*result)); + result->magic = 0x8dca6aa5; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->photos = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field2); + return result; +} +struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; } + struct tl_ds_photos_photos * result = talloc0 (sizeof (*result)); + result->magic = 0x15051f54; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->count = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->photos = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field3); + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0xaa963b05; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_jpeg (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x007efe0e; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_gif (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0xcae1aadf; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_png (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x0a4f63c0; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_pdf (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0xae1e508d; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp3 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x528a0677; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mov (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x4b09ebbc; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_partial (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x40bc6f52; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp4 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0xb3cea0e4; + return result; +} +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_webp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; } + struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result)); + result->magic = 0x1081464c; + return result; +} +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; } + struct tl_ds_updates_difference * result = talloc0 (sizeof (*result)); + result->magic = 0x5d75a138; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field2); + return result; +} +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; } + struct tl_ds_updates_difference * result = talloc0 (sizeof (*result)); + result->magic = 0x00f49ca0; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->new_messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->other_updates = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->state = fetch_ds_type_updates_state (field6); + return result; +} +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; } + struct tl_ds_updates_difference * result = talloc0 (sizeof (*result)); + result->magic = 0xa8fb1981; + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->new_messages = (void *)fetch_ds_type_vector (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->other_updates = (void *)fetch_ds_type_vector (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->chats = (void *)fetch_ds_type_vector (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + result->users = (void *)fetch_ds_type_vector (field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->intermediate_state = fetch_ds_type_updates_state (field6); + return result; +} +struct tl_ds_updates_state *fetch_ds_constructor_updates_state (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return 0; } + struct tl_ds_updates_state * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->pts = fetch_ds_type_bare_int (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->qts = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->date = fetch_ds_type_bare_int (field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->seq = fetch_ds_type_bare_int (field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->unread_count = fetch_ds_type_bare_int (field5); + return result; +} +struct tl_ds_upload_file *fetch_ds_constructor_upload_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return 0; } + struct tl_ds_upload_file * result = talloc0 (sizeof (*result)); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->type = fetch_ds_type_storage_file_type (field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->mtime = fetch_ds_type_bare_int (field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + result->bytes = fetch_ds_type_bare_bytes (field3); + return result; +} +struct tl_ds_account_days_t_t_l *fetch_ds_type_account_days_t_t_l (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb8d0afdf: return fetch_ds_constructor_account_days_t_t_l (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_days_t_t_l *fetch_ds_type_bare_account_days_t_t_l (struct paramed_type *T) { + return fetch_ds_constructor_account_days_t_t_l (T); + assert (0); + return NULL; +} +struct tl_ds_audio *fetch_ds_type_audio (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x586988d8: return fetch_ds_constructor_audio_empty (T); break; + case 0xc7ac6496: return fetch_ds_constructor_audio (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_audio *fetch_ds_type_bare_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio_empty (T); } + if (skip_constructor_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio (T); } + assert (0); + return NULL; +} +struct tl_ds_authorization *fetch_ds_type_authorization (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x7bf2e6f6: return fetch_ds_constructor_authorization (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_authorization *fetch_ds_type_bare_authorization (struct paramed_type *T) { + return fetch_ds_constructor_authorization (T); + assert (0); + return NULL; +} +struct tl_ds_bool *fetch_ds_type_bool (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xbc799737: return fetch_ds_constructor_bool_false (T); break; + case 0x997275b5: return fetch_ds_constructor_bool_true (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_bool *fetch_ds_type_bare_bool (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bool_false (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_false (T); } + if (skip_constructor_bool_true (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_true (T); } + assert (0); + return NULL; +} +struct tl_ds_bot_command *fetch_ds_type_bot_command (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc27ac8c7: return fetch_ds_constructor_bot_command (T); break; + case 0xb79d22ab: return fetch_ds_constructor_bot_command_old (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_bot_command *fetch_ds_type_bare_bot_command (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bot_command (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command (T); } + if (skip_constructor_bot_command_old (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command_old (T); } + assert (0); + return NULL; +} +struct tl_ds_bot_info *fetch_ds_type_bot_info (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xbb2e37ce: return fetch_ds_constructor_bot_info_empty (T); break; + case 0x09cf585d: return fetch_ds_constructor_bot_info (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_bot_info *fetch_ds_type_bare_bot_info (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bot_info_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info_empty (T); } + if (skip_constructor_bot_info (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info (T); } + assert (0); + return NULL; +} +struct tl_ds_string *fetch_ds_type_bytes (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0ee1379f: return fetch_ds_constructor_bytes (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_string *fetch_ds_type_bare_bytes (struct paramed_type *T) { + return fetch_ds_constructor_bytes (T); + assert (0); + return NULL; +} +struct tl_ds_chat *fetch_ds_type_chat (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x9ba2d800: return fetch_ds_constructor_chat_empty (T); break; + case 0x6e9c9bc7: return fetch_ds_constructor_chat (T); break; + case 0xfb0ccc41: return fetch_ds_constructor_chat_forbidden (T); break; + case 0x75eaea5a: return fetch_ds_constructor_geo_chat (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat *fetch_ds_type_bare_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_empty (T); } + if (skip_constructor_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat (T); } + if (skip_constructor_chat_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_forbidden (T); } + if (skip_constructor_geo_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat (T); } + assert (0); + return NULL; +} +struct tl_ds_chat_full *fetch_ds_type_chat_full (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x2e02a614: return fetch_ds_constructor_chat_full (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_full *fetch_ds_type_bare_chat_full (struct paramed_type *T) { + return fetch_ds_constructor_chat_full (T); + assert (0); + return NULL; +} +struct tl_ds_chat_invite *fetch_ds_type_chat_invite (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5a686d7c: return fetch_ds_constructor_chat_invite_already (T); break; + case 0xce917dcd: return fetch_ds_constructor_chat_invite (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_invite *fetch_ds_type_bare_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_invite_already (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_already (T); } + if (skip_constructor_chat_invite (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite (T); } + assert (0); + return NULL; +} +struct tl_ds_chat_located *fetch_ds_type_chat_located (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3631cf4c: return fetch_ds_constructor_chat_located (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_located *fetch_ds_type_bare_chat_located (struct paramed_type *T) { + return fetch_ds_constructor_chat_located (T); + assert (0); + return NULL; +} +struct tl_ds_chat_participant *fetch_ds_type_chat_participant (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc8d7493e: return fetch_ds_constructor_chat_participant (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_participant *fetch_ds_type_bare_chat_participant (struct paramed_type *T) { + return fetch_ds_constructor_chat_participant (T); + assert (0); + return NULL; +} +struct tl_ds_chat_participants *fetch_ds_type_chat_participants (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0fd2bb8a: return fetch_ds_constructor_chat_participants_forbidden (T); break; + case 0x7841b415: return fetch_ds_constructor_chat_participants (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_participants *fetch_ds_type_bare_chat_participants (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_participants_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants_forbidden (T); } + if (skip_constructor_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants (T); } + assert (0); + return NULL; +} +struct tl_ds_chat_photo *fetch_ds_type_chat_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x37c1011c: return fetch_ds_constructor_chat_photo_empty (T); break; + case 0x6153276a: return fetch_ds_constructor_chat_photo (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_chat_photo *fetch_ds_type_bare_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo_empty (T); } + if (skip_constructor_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo (T); } + assert (0); + return NULL; +} +struct tl_ds_client_d_h_inner_data *fetch_ds_type_client_d_h_inner_data (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x6643b654: return fetch_ds_constructor_client_d_h_inner_data (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_client_d_h_inner_data *fetch_ds_type_bare_client_d_h_inner_data (struct paramed_type *T) { + return fetch_ds_constructor_client_d_h_inner_data (T); + assert (0); + return NULL; +} +struct tl_ds_config *fetch_ds_type_config (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x4e32b894: return fetch_ds_constructor_config (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_config *fetch_ds_type_bare_config (struct paramed_type *T) { + return fetch_ds_constructor_config (T); + assert (0); + return NULL; +} +struct tl_ds_contact *fetch_ds_type_contact (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf911c994: return fetch_ds_constructor_contact (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact *fetch_ds_type_bare_contact (struct paramed_type *T) { + return fetch_ds_constructor_contact (T); + assert (0); + return NULL; +} +struct tl_ds_contact_blocked *fetch_ds_type_contact_blocked (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x561bc879: return fetch_ds_constructor_contact_blocked (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact_blocked *fetch_ds_type_bare_contact_blocked (struct paramed_type *T) { + return fetch_ds_constructor_contact_blocked (T); + assert (0); + return NULL; +} +struct tl_ds_contact_found *fetch_ds_type_contact_found (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xea879f95: return fetch_ds_constructor_contact_found (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact_found *fetch_ds_type_bare_contact_found (struct paramed_type *T) { + return fetch_ds_constructor_contact_found (T); + assert (0); + return NULL; +} +struct tl_ds_contact_link *fetch_ds_type_contact_link (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5f4f9247: return fetch_ds_constructor_contact_link_unknown (T); break; + case 0xfeedd3ad: return fetch_ds_constructor_contact_link_none (T); break; + case 0x268f3f59: return fetch_ds_constructor_contact_link_has_phone (T); break; + case 0xd502c2d0: return fetch_ds_constructor_contact_link_contact (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact_link *fetch_ds_type_bare_contact_link (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contact_link_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_unknown (T); } + if (skip_constructor_contact_link_none (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_none (T); } + if (skip_constructor_contact_link_has_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_has_phone (T); } + if (skip_constructor_contact_link_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_contact (T); } + assert (0); + return NULL; +} +struct tl_ds_contact_status *fetch_ds_type_contact_status (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xd3680c61: return fetch_ds_constructor_contact_status (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact_status *fetch_ds_type_bare_contact_status (struct paramed_type *T) { + return fetch_ds_constructor_contact_status (T); + assert (0); + return NULL; +} +struct tl_ds_contact_suggested *fetch_ds_type_contact_suggested (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3de191a1: return fetch_ds_constructor_contact_suggested (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contact_suggested *fetch_ds_type_bare_contact_suggested (struct paramed_type *T) { + return fetch_ds_constructor_contact_suggested (T); + assert (0); + return NULL; +} +struct tl_ds_dc_option *fetch_ds_type_dc_option (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x2ec2a43c: return fetch_ds_constructor_dc_option_l28 (T); break; + case 0x05d8c6cc: return fetch_ds_constructor_dc_option (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_dc_option *fetch_ds_type_bare_dc_option (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_dc_option_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option_l28 (T); } + if (skip_constructor_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option (T); } + assert (0); + return NULL; +} +struct tl_ds_decrypted_message *fetch_ds_type_decrypted_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x204d3878: return fetch_ds_constructor_decrypted_message (T); break; + case 0x73164160: return fetch_ds_constructor_decrypted_message_service (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_decrypted_message *fetch_ds_type_bare_decrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message (T); } + if (skip_constructor_decrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_service (T); } + assert (0); + return NULL; +} +struct tl_ds_decrypted_message_action *fetch_ds_type_decrypted_message_action (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa1733aec: return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); break; + case 0x0c4f40be: return fetch_ds_constructor_decrypted_message_action_read_messages (T); break; + case 0x65614304: return fetch_ds_constructor_decrypted_message_action_delete_messages (T); break; + case 0x8ac1f475: return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); break; + case 0x6719e45c: return fetch_ds_constructor_decrypted_message_action_flush_history (T); break; + case 0x511110b0: return fetch_ds_constructor_decrypted_message_action_resend (T); break; + case 0xf3048883: return fetch_ds_constructor_decrypted_message_action_notify_layer (T); break; + case 0xccb27641: return fetch_ds_constructor_decrypted_message_action_typing (T); break; + case 0xf3c9611b: return fetch_ds_constructor_decrypted_message_action_request_key (T); break; + case 0x6fe1735b: return fetch_ds_constructor_decrypted_message_action_accept_key (T); break; + case 0xdd05ec6b: return fetch_ds_constructor_decrypted_message_action_abort_key (T); break; + case 0xec2e0b9b: return fetch_ds_constructor_decrypted_message_action_commit_key (T); break; + case 0xa82fdd63: return fetch_ds_constructor_decrypted_message_action_noop (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_decrypted_message_action *fetch_ds_type_bare_decrypted_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); } + if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_read_messages (T); } + if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_delete_messages (T); } + if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); } + if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_flush_history (T); } + if (skip_constructor_decrypted_message_action_resend (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_resend (T); } + if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_notify_layer (T); } + if (skip_constructor_decrypted_message_action_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_typing (T); } + if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_request_key (T); } + if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_accept_key (T); } + if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_abort_key (T); } + if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_commit_key (T); } + if (skip_constructor_decrypted_message_action_noop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_noop (T); } + assert (0); + return NULL; +} +struct tl_ds_decrypted_message_layer *fetch_ds_type_decrypted_message_layer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1be31789: return fetch_ds_constructor_decrypted_message_layer (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_decrypted_message_layer *fetch_ds_type_bare_decrypted_message_layer (struct paramed_type *T) { + return fetch_ds_constructor_decrypted_message_layer (T); + assert (0); + return NULL; +} +struct tl_ds_decrypted_message_media *fetch_ds_type_decrypted_message_media (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x089f5c4a: return fetch_ds_constructor_decrypted_message_media_empty (T); break; + case 0x32798a8c: return fetch_ds_constructor_decrypted_message_media_photo (T); break; + case 0x35480a59: return fetch_ds_constructor_decrypted_message_media_geo_point (T); break; + case 0x588a0a97: return fetch_ds_constructor_decrypted_message_media_contact (T); break; + case 0xb095434b: return fetch_ds_constructor_decrypted_message_media_document (T); break; + case 0x524a415d: return fetch_ds_constructor_decrypted_message_media_video (T); break; + case 0x57e0a9cb: return fetch_ds_constructor_decrypted_message_media_audio (T); break; + case 0xfa95b0dd: return fetch_ds_constructor_decrypted_message_media_external_document (T); break; + case 0x4cee6ef3: return fetch_ds_constructor_decrypted_message_media_video_l12 (T); break; + case 0x6080758f: return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_decrypted_message_media *fetch_ds_type_bare_decrypted_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_empty (T); } + if (skip_constructor_decrypted_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_photo (T); } + if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_geo_point (T); } + if (skip_constructor_decrypted_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_contact (T); } + if (skip_constructor_decrypted_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_document (T); } + if (skip_constructor_decrypted_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video (T); } + if (skip_constructor_decrypted_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio (T); } + if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_external_document (T); } + if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video_l12 (T); } + if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); } + assert (0); + return NULL; +} +struct tl_ds_dialog *fetch_ds_type_dialog (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc1dd804a: return fetch_ds_constructor_dialog (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_dialog *fetch_ds_type_bare_dialog (struct paramed_type *T) { + return fetch_ds_constructor_dialog (T); + assert (0); + return NULL; +} +struct tl_ds_disabled_feature *fetch_ds_type_disabled_feature (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xae636f24: return fetch_ds_constructor_disabled_feature (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_disabled_feature *fetch_ds_type_bare_disabled_feature (struct paramed_type *T) { + return fetch_ds_constructor_disabled_feature (T); + assert (0); + return NULL; +} +struct tl_ds_document *fetch_ds_type_document (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x36f8c871: return fetch_ds_constructor_document_empty (T); break; + case 0xf9a39f4f: return fetch_ds_constructor_document (T); break; + case 0x9efc6326: return fetch_ds_constructor_document_l19 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_document *fetch_ds_type_bare_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_empty (T); } + if (skip_constructor_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document (T); } + if (skip_constructor_document_l19 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_l19 (T); } + assert (0); + return NULL; +} +struct tl_ds_document_attribute *fetch_ds_type_document_attribute (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x6c37c15c: return fetch_ds_constructor_document_attribute_image_size (T); break; + case 0x11b58939: return fetch_ds_constructor_document_attribute_animated (T); break; + case 0x994c9882: return fetch_ds_constructor_document_attribute_sticker_l28 (T); break; + case 0x3a556302: return fetch_ds_constructor_document_attribute_sticker (T); break; + case 0x5910cccb: return fetch_ds_constructor_document_attribute_video (T); break; + case 0x051448e5: return fetch_ds_constructor_document_attribute_audio (T); break; + case 0x15590068: return fetch_ds_constructor_document_attribute_filename (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_document_attribute *fetch_ds_type_bare_document_attribute (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_document_attribute_image_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_image_size (T); } + if (skip_constructor_document_attribute_animated (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_animated (T); } + if (skip_constructor_document_attribute_sticker_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker_l28 (T); } + if (skip_constructor_document_attribute_sticker (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker (T); } + if (skip_constructor_document_attribute_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_video (T); } + if (skip_constructor_document_attribute_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_audio (T); } + if (skip_constructor_document_attribute_filename (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_filename (T); } + assert (0); + return NULL; +} +double *fetch_ds_type_double (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x2210c154: return fetch_ds_constructor_double (T); break; + default: assert (0); return NULL; + } +} +double *fetch_ds_type_bare_double (struct paramed_type *T) { + return fetch_ds_constructor_double (T); + assert (0); + return NULL; +} +struct tl_ds_encrypted_chat *fetch_ds_type_encrypted_chat (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xab7ec0a0: return fetch_ds_constructor_encrypted_chat_empty (T); break; + case 0x3bf703dc: return fetch_ds_constructor_encrypted_chat_waiting (T); break; + case 0xc878527e: return fetch_ds_constructor_encrypted_chat_requested (T); break; + case 0xfa56ce36: return fetch_ds_constructor_encrypted_chat (T); break; + case 0x13d6dd27: return fetch_ds_constructor_encrypted_chat_discarded (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_encrypted_chat *fetch_ds_type_bare_encrypted_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_empty (T); } + if (skip_constructor_encrypted_chat_waiting (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_waiting (T); } + if (skip_constructor_encrypted_chat_requested (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_requested (T); } + if (skip_constructor_encrypted_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat (T); } + if (skip_constructor_encrypted_chat_discarded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_discarded (T); } + assert (0); + return NULL; +} +struct tl_ds_encrypted_file *fetch_ds_type_encrypted_file (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc21f497e: return fetch_ds_constructor_encrypted_file_empty (T); break; + case 0x4a70994c: return fetch_ds_constructor_encrypted_file (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_encrypted_file *fetch_ds_type_bare_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file_empty (T); } + if (skip_constructor_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file (T); } + assert (0); + return NULL; +} +struct tl_ds_encrypted_message *fetch_ds_type_encrypted_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xed18c118: return fetch_ds_constructor_encrypted_message (T); break; + case 0x23734b06: return fetch_ds_constructor_encrypted_message_service (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_encrypted_message *fetch_ds_type_bare_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message (T); } + if (skip_constructor_encrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message_service (T); } + assert (0); + return NULL; +} +struct tl_ds_error *fetch_ds_type_error (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc4b9f9bb: return fetch_ds_constructor_error (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_error *fetch_ds_type_bare_error (struct paramed_type *T) { + return fetch_ds_constructor_error (T); + assert (0); + return NULL; +} +struct tl_ds_exported_chat_invite *fetch_ds_type_exported_chat_invite (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x69df3769: return fetch_ds_constructor_chat_invite_empty (T); break; + case 0xfc2e05bc: return fetch_ds_constructor_chat_invite_exported (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_exported_chat_invite *fetch_ds_type_bare_exported_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_invite_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_empty (T); } + if (skip_constructor_chat_invite_exported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_exported (T); } + assert (0); + return NULL; +} +struct tl_ds_file_location *fetch_ds_type_file_location (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x7c596b46: return fetch_ds_constructor_file_location_unavailable (T); break; + case 0x53d69076: return fetch_ds_constructor_file_location (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_file_location *fetch_ds_type_bare_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_file_location_unavailable (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location_unavailable (T); } + if (skip_constructor_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location (T); } + assert (0); + return NULL; +} +struct tl_ds_geo_chat_message *fetch_ds_type_geo_chat_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x60311a9b: return fetch_ds_constructor_geo_chat_message_empty (T); break; + case 0x4505f8e1: return fetch_ds_constructor_geo_chat_message (T); break; + case 0xd34fa24e: return fetch_ds_constructor_geo_chat_message_service (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_geo_chat_message *fetch_ds_type_bare_geo_chat_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geo_chat_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_empty (T); } + if (skip_constructor_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message (T); } + if (skip_constructor_geo_chat_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_service (T); } + assert (0); + return NULL; +} +struct tl_ds_geo_point *fetch_ds_type_geo_point (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1117dd5f: return fetch_ds_constructor_geo_point_empty (T); break; + case 0x2049d70c: return fetch_ds_constructor_geo_point (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_geo_point *fetch_ds_type_bare_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point_empty (T); } + if (skip_constructor_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point (T); } + assert (0); + return NULL; +} +struct tl_ds_imported_contact *fetch_ds_type_imported_contact (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xd0028438: return fetch_ds_constructor_imported_contact (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_imported_contact *fetch_ds_type_bare_imported_contact (struct paramed_type *T) { + return fetch_ds_constructor_imported_contact (T); + assert (0); + return NULL; +} +struct tl_ds_input_app_event *fetch_ds_type_input_app_event (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x770656a8: return fetch_ds_constructor_input_app_event (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_app_event *fetch_ds_type_bare_input_app_event (struct paramed_type *T) { + return fetch_ds_constructor_input_app_event (T); + assert (0); + return NULL; +} +struct tl_ds_input_audio *fetch_ds_type_input_audio (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xd95adc84: return fetch_ds_constructor_input_audio_empty (T); break; + case 0x77d440ff: return fetch_ds_constructor_input_audio (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_audio *fetch_ds_type_bare_input_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_empty (T); } + if (skip_constructor_input_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio (T); } + assert (0); + return NULL; +} +struct tl_ds_input_chat_photo *fetch_ds_type_input_chat_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1ca48f57: return fetch_ds_constructor_input_chat_photo_empty (T); break; + case 0x94254732: return fetch_ds_constructor_input_chat_uploaded_photo (T); break; + case 0xb2e1bf08: return fetch_ds_constructor_input_chat_photo (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_chat_photo *fetch_ds_type_bare_input_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo_empty (T); } + if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_uploaded_photo (T); } + if (skip_constructor_input_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo (T); } + assert (0); + return NULL; +} +struct tl_ds_input_contact *fetch_ds_type_input_contact (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf392b7f4: return fetch_ds_constructor_input_phone_contact (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_contact *fetch_ds_type_bare_input_contact (struct paramed_type *T) { + return fetch_ds_constructor_input_phone_contact (T); + assert (0); + return NULL; +} +struct tl_ds_input_document *fetch_ds_type_input_document (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x72f0eaae: return fetch_ds_constructor_input_document_empty (T); break; + case 0x18798952: return fetch_ds_constructor_input_document (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_document *fetch_ds_type_bare_input_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_empty (T); } + if (skip_constructor_input_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document (T); } + assert (0); + return NULL; +} +struct tl_ds_input_encrypted_chat *fetch_ds_type_input_encrypted_chat (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf141b5e1: return fetch_ds_constructor_input_encrypted_chat (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_encrypted_chat *fetch_ds_type_bare_input_encrypted_chat (struct paramed_type *T) { + return fetch_ds_constructor_input_encrypted_chat (T); + assert (0); + return NULL; +} +struct tl_ds_input_encrypted_file *fetch_ds_type_input_encrypted_file (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1837c364: return fetch_ds_constructor_input_encrypted_file_empty (T); break; + case 0x64bd0306: return fetch_ds_constructor_input_encrypted_file_uploaded (T); break; + case 0x5a17b5e5: return fetch_ds_constructor_input_encrypted_file (T); break; + case 0x2dc173c8: return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_encrypted_file *fetch_ds_type_bare_input_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_empty (T); } + if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_uploaded (T); } + if (skip_constructor_input_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file (T); } + if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); } + assert (0); + return NULL; +} +struct tl_ds_input_file *fetch_ds_type_input_file (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf52ff27f: return fetch_ds_constructor_input_file (T); break; + case 0xfa4f0bb5: return fetch_ds_constructor_input_file_big (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_file *fetch_ds_type_bare_input_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file (T); } + if (skip_constructor_input_file_big (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_big (T); } + assert (0); + return NULL; +} +struct tl_ds_input_file_location *fetch_ds_type_input_file_location (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x14637196: return fetch_ds_constructor_input_file_location (T); break; + case 0x3d0364ec: return fetch_ds_constructor_input_video_file_location (T); break; + case 0xf5235d55: return fetch_ds_constructor_input_encrypted_file_location (T); break; + case 0x74dc404d: return fetch_ds_constructor_input_audio_file_location (T); break; + case 0x4e45abe9: return fetch_ds_constructor_input_document_file_location (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_file_location *fetch_ds_type_bare_input_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_location (T); } + if (skip_constructor_input_video_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_file_location (T); } + if (skip_constructor_input_encrypted_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_location (T); } + if (skip_constructor_input_audio_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_file_location (T); } + if (skip_constructor_input_document_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_file_location (T); } + assert (0); + return NULL; +} +struct tl_ds_input_geo_chat *fetch_ds_type_input_geo_chat (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x74d456fa: return fetch_ds_constructor_input_geo_chat (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_geo_chat *fetch_ds_type_bare_input_geo_chat (struct paramed_type *T) { + return fetch_ds_constructor_input_geo_chat (T); + assert (0); + return NULL; +} +struct tl_ds_input_geo_point *fetch_ds_type_input_geo_point (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xe4c123d6: return fetch_ds_constructor_input_geo_point_empty (T); break; + case 0xf3b7acc9: return fetch_ds_constructor_input_geo_point (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_geo_point *fetch_ds_type_bare_input_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point_empty (T); } + if (skip_constructor_input_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point (T); } + assert (0); + return NULL; +} +struct tl_ds_input_media *fetch_ds_type_input_media (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x9664f57f: return fetch_ds_constructor_input_media_empty (T); break; + case 0xf7aff1c0: return fetch_ds_constructor_input_media_uploaded_photo (T); break; + case 0xe9bfb4f3: return fetch_ds_constructor_input_media_photo (T); break; + case 0xf9c44144: return fetch_ds_constructor_input_media_geo_point (T); break; + case 0xa6e45987: return fetch_ds_constructor_input_media_contact (T); break; + case 0xe13fd4bc: return fetch_ds_constructor_input_media_uploaded_video (T); break; + case 0x96fb97dc: return fetch_ds_constructor_input_media_uploaded_thumb_video (T); break; + case 0x936a4ebd: return fetch_ds_constructor_input_media_video (T); break; + case 0x4e498cab: return fetch_ds_constructor_input_media_uploaded_audio (T); break; + case 0x89938781: return fetch_ds_constructor_input_media_audio (T); break; + case 0xffe76b78: return fetch_ds_constructor_input_media_uploaded_document (T); break; + case 0x41481486: return fetch_ds_constructor_input_media_uploaded_thumb_document (T); break; + case 0xd184e841: return fetch_ds_constructor_input_media_document (T); break; + case 0x2827a81a: return fetch_ds_constructor_input_media_venue (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_media *fetch_ds_type_bare_input_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_empty (T); } + if (skip_constructor_input_media_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_photo (T); } + if (skip_constructor_input_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_photo (T); } + if (skip_constructor_input_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_geo_point (T); } + if (skip_constructor_input_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_contact (T); } + if (skip_constructor_input_media_uploaded_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_video (T); } + if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_video (T); } + if (skip_constructor_input_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_video (T); } + if (skip_constructor_input_media_uploaded_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_audio (T); } + if (skip_constructor_input_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_audio (T); } + if (skip_constructor_input_media_uploaded_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_document (T); } + if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_document (T); } + if (skip_constructor_input_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_document (T); } + if (skip_constructor_input_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_venue (T); } + assert (0); + return NULL; +} +struct tl_ds_input_notify_peer *fetch_ds_type_input_notify_peer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb8bc5b0c: return fetch_ds_constructor_input_notify_peer (T); break; + case 0x193b4417: return fetch_ds_constructor_input_notify_users (T); break; + case 0x4a95e84e: return fetch_ds_constructor_input_notify_chats (T); break; + case 0xa429b886: return fetch_ds_constructor_input_notify_all (T); break; + case 0x4d8ddec8: return fetch_ds_constructor_input_notify_geo_chat_peer (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_notify_peer *fetch_ds_type_bare_input_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_peer (T); } + if (skip_constructor_input_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_users (T); } + if (skip_constructor_input_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_chats (T); } + if (skip_constructor_input_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_all (T); } + if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_geo_chat_peer (T); } + assert (0); + return NULL; +} +struct tl_ds_input_peer *fetch_ds_type_input_peer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x7f3b18ea: return fetch_ds_constructor_input_peer_empty (T); break; + case 0x7da07ec9: return fetch_ds_constructor_input_peer_self (T); break; + case 0x1023dbe8: return fetch_ds_constructor_input_peer_contact (T); break; + case 0x9b447325: return fetch_ds_constructor_input_peer_foreign (T); break; + case 0x179be863: return fetch_ds_constructor_input_peer_chat (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_peer *fetch_ds_type_bare_input_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_peer_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_empty (T); } + if (skip_constructor_input_peer_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_self (T); } + if (skip_constructor_input_peer_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_contact (T); } + if (skip_constructor_input_peer_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_foreign (T); } + if (skip_constructor_input_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_chat (T); } + assert (0); + return NULL; +} +struct tl_ds_input_peer_notify_events *fetch_ds_type_input_peer_notify_events (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf03064d8: return fetch_ds_constructor_input_peer_notify_events_empty (T); break; + case 0xe86a2c74: return fetch_ds_constructor_input_peer_notify_events_all (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_peer_notify_events *fetch_ds_type_bare_input_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_empty (T); } + if (skip_constructor_input_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_all (T); } + assert (0); + return NULL; +} +struct tl_ds_input_peer_notify_settings *fetch_ds_type_input_peer_notify_settings (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x46a2ce98: return fetch_ds_constructor_input_peer_notify_settings (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_peer_notify_settings *fetch_ds_type_bare_input_peer_notify_settings (struct paramed_type *T) { + return fetch_ds_constructor_input_peer_notify_settings (T); + assert (0); + return NULL; +} +struct tl_ds_input_photo *fetch_ds_type_input_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1cd7bf0d: return fetch_ds_constructor_input_photo_empty (T); break; + case 0xfb95c6c4: return fetch_ds_constructor_input_photo (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_photo *fetch_ds_type_bare_input_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_empty (T); } + if (skip_constructor_input_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo (T); } + assert (0); + return NULL; +} +struct tl_ds_input_photo_crop *fetch_ds_type_input_photo_crop (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xade6b004: return fetch_ds_constructor_input_photo_crop_auto (T); break; + case 0xd9915325: return fetch_ds_constructor_input_photo_crop (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_photo_crop *fetch_ds_type_bare_input_photo_crop (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_photo_crop_auto (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop_auto (T); } + if (skip_constructor_input_photo_crop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop (T); } + assert (0); + return NULL; +} +struct tl_ds_input_privacy_key *fetch_ds_type_input_privacy_key (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x4f96cb18: return fetch_ds_constructor_input_privacy_key_status_timestamp (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_privacy_key *fetch_ds_type_bare_input_privacy_key (struct paramed_type *T) { + return fetch_ds_constructor_input_privacy_key_status_timestamp (T); + assert (0); + return NULL; +} +struct tl_ds_input_privacy_rule *fetch_ds_type_input_privacy_rule (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0d09e07b: return fetch_ds_constructor_input_privacy_value_allow_contacts (T); break; + case 0x184b35ce: return fetch_ds_constructor_input_privacy_value_allow_all (T); break; + case 0x131cc67f: return fetch_ds_constructor_input_privacy_value_allow_users (T); break; + case 0x0ba52007: return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); break; + case 0xd66b66c9: return fetch_ds_constructor_input_privacy_value_disallow_all (T); break; + case 0x90110467: return fetch_ds_constructor_input_privacy_value_disallow_users (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_privacy_rule *fetch_ds_type_bare_input_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_contacts (T); } + if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_all (T); } + if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_users (T); } + if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); } + if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_all (T); } + if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_users (T); } + assert (0); + return NULL; +} +struct tl_ds_input_sticker_set *fetch_ds_type_input_sticker_set (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xffb62b95: return fetch_ds_constructor_input_sticker_set_empty (T); break; + case 0x9de7a269: return fetch_ds_constructor_input_sticker_set_i_d (T); break; + case 0x861cc8a0: return fetch_ds_constructor_input_sticker_set_short_name (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_sticker_set *fetch_ds_type_bare_input_sticker_set (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_sticker_set_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_empty (T); } + if (skip_constructor_input_sticker_set_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_i_d (T); } + if (skip_constructor_input_sticker_set_short_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_short_name (T); } + assert (0); + return NULL; +} +struct tl_ds_input_user *fetch_ds_type_input_user (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb98886cf: return fetch_ds_constructor_input_user_empty (T); break; + case 0xf7c1b13f: return fetch_ds_constructor_input_user_self (T); break; + case 0x86e94f65: return fetch_ds_constructor_input_user_contact (T); break; + case 0x655e74ff: return fetch_ds_constructor_input_user_foreign (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_user *fetch_ds_type_bare_input_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_empty (T); } + if (skip_constructor_input_user_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_self (T); } + if (skip_constructor_input_user_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_contact (T); } + if (skip_constructor_input_user_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_foreign (T); } + assert (0); + return NULL; +} +struct tl_ds_input_video *fetch_ds_type_input_video (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5508ec75: return fetch_ds_constructor_input_video_empty (T); break; + case 0xee579652: return fetch_ds_constructor_input_video (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_input_video *fetch_ds_type_bare_input_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_empty (T); } + if (skip_constructor_input_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video (T); } + assert (0); + return NULL; +} +int *fetch_ds_type_int (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa8509bda: return fetch_ds_constructor_int (T); break; + default: assert (0); return NULL; + } +} +int *fetch_ds_type_bare_int (struct paramed_type *T) { + return fetch_ds_constructor_int (T); + assert (0); + return NULL; +} +struct tl_ds_int128 *fetch_ds_type_int128 (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x7d36c439: return fetch_ds_constructor_int128 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_int128 *fetch_ds_type_bare_int128 (struct paramed_type *T) { + return fetch_ds_constructor_int128 (T); + assert (0); + return NULL; +} +struct tl_ds_int256 *fetch_ds_type_int256 (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf2c798b3: return fetch_ds_constructor_int256 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_int256 *fetch_ds_type_bare_int256 (struct paramed_type *T) { + return fetch_ds_constructor_int256 (T); + assert (0); + return NULL; +} +struct tl_ds_keyboard_button *fetch_ds_type_keyboard_button (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa2fa4880: return fetch_ds_constructor_keyboard_button (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_keyboard_button *fetch_ds_type_bare_keyboard_button (struct paramed_type *T) { + return fetch_ds_constructor_keyboard_button (T); + assert (0); + return NULL; +} +struct tl_ds_keyboard_button_row *fetch_ds_type_keyboard_button_row (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x77608b83: return fetch_ds_constructor_keyboard_button_row (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_keyboard_button_row *fetch_ds_type_bare_keyboard_button_row (struct paramed_type *T) { + return fetch_ds_constructor_keyboard_button_row (T); + assert (0); + return NULL; +} +long long *fetch_ds_type_long (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x22076cba: return fetch_ds_constructor_long (T); break; + default: assert (0); return NULL; + } +} +long long *fetch_ds_type_bare_long (struct paramed_type *T) { + return fetch_ds_constructor_long (T); + assert (0); + return NULL; +} +struct tl_ds_message *fetch_ds_type_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x83e5de54: return fetch_ds_constructor_message_empty (T); break; + case 0xc3060325: return fetch_ds_constructor_message (T); break; + case 0x1d86f70e: return fetch_ds_constructor_message_service (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_message *fetch_ds_type_bare_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_empty (T); } + if (skip_constructor_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message (T); } + if (skip_constructor_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_service (T); } + assert (0); + return NULL; +} +struct tl_ds_message_action *fetch_ds_type_message_action (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb6aef7b0: return fetch_ds_constructor_message_action_empty (T); break; + case 0xa6638b9a: return fetch_ds_constructor_message_action_chat_create (T); break; + case 0xb5a1ce5a: return fetch_ds_constructor_message_action_chat_edit_title (T); break; + case 0x7fcb13a8: return fetch_ds_constructor_message_action_chat_edit_photo (T); break; + case 0x95e3fbef: return fetch_ds_constructor_message_action_chat_delete_photo (T); break; + case 0x5e3cfc4b: return fetch_ds_constructor_message_action_chat_add_user (T); break; + case 0xb2ae9b0c: return fetch_ds_constructor_message_action_chat_delete_user (T); break; + case 0x6f038ebc: return fetch_ds_constructor_message_action_geo_chat_create (T); break; + case 0x0c7d53de: return fetch_ds_constructor_message_action_geo_chat_checkin (T); break; + case 0xf89cf5e8: return fetch_ds_constructor_message_action_chat_joined_by_link (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_message_action *fetch_ds_type_bare_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_action_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_empty (T); } + if (skip_constructor_message_action_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_create (T); } + if (skip_constructor_message_action_chat_edit_title (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_title (T); } + if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_photo (T); } + if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_photo (T); } + if (skip_constructor_message_action_chat_add_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_add_user (T); } + if (skip_constructor_message_action_chat_delete_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_user (T); } + if (skip_constructor_message_action_geo_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_create (T); } + if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_checkin (T); } + if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_joined_by_link (T); } + assert (0); + return NULL; +} +struct tl_ds_message_media *fetch_ds_type_message_media (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3ded6320: return fetch_ds_constructor_message_media_empty (T); break; + case 0x3d8ce53d: return fetch_ds_constructor_message_media_photo (T); break; + case 0x5bcf1675: return fetch_ds_constructor_message_media_video (T); break; + case 0x56e0d474: return fetch_ds_constructor_message_media_geo (T); break; + case 0x5e7d2f39: return fetch_ds_constructor_message_media_contact (T); break; + case 0x9f84f49e: return fetch_ds_constructor_message_media_unsupported (T); break; + case 0x2fda2204: return fetch_ds_constructor_message_media_document (T); break; + case 0xc6b68300: return fetch_ds_constructor_message_media_audio (T); break; + case 0xa32dd600: return fetch_ds_constructor_message_media_web_page (T); break; + case 0x7912b71f: return fetch_ds_constructor_message_media_venue (T); break; + case 0xc8c45a2a: return fetch_ds_constructor_message_media_photo_l27 (T); break; + case 0xa2d24290: return fetch_ds_constructor_message_media_video_l27 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_message_media *fetch_ds_type_bare_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_empty (T); } + if (skip_constructor_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo (T); } + if (skip_constructor_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video (T); } + if (skip_constructor_message_media_geo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_geo (T); } + if (skip_constructor_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_contact (T); } + if (skip_constructor_message_media_unsupported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_unsupported (T); } + if (skip_constructor_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_document (T); } + if (skip_constructor_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_audio (T); } + if (skip_constructor_message_media_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_web_page (T); } + if (skip_constructor_message_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_venue (T); } + if (skip_constructor_message_media_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo_l27 (T); } + if (skip_constructor_message_media_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video_l27 (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_filter *fetch_ds_type_messages_filter (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x57e2f66c: return fetch_ds_constructor_input_messages_filter_empty (T); break; + case 0x9609a51c: return fetch_ds_constructor_input_messages_filter_photos (T); break; + case 0x9fc00e65: return fetch_ds_constructor_input_messages_filter_video (T); break; + case 0x56e9f0e4: return fetch_ds_constructor_input_messages_filter_photo_video (T); break; + case 0xd95e73bb: return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); break; + case 0x9eddf188: return fetch_ds_constructor_input_messages_filter_document (T); break; + case 0xcfc87522: return fetch_ds_constructor_input_messages_filter_audio (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_filter *fetch_ds_type_bare_messages_filter (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_messages_filter_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_empty (T); } + if (skip_constructor_input_messages_filter_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photos (T); } + if (skip_constructor_input_messages_filter_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_video (T); } + if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video (T); } + if (skip_constructor_input_messages_filter_photo_video_documents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); } + if (skip_constructor_input_messages_filter_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_document (T); } + if (skip_constructor_input_messages_filter_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_audio (T); } + assert (0); + return NULL; +} +struct tl_ds_nearest_dc *fetch_ds_type_nearest_dc (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x8e1a1775: return fetch_ds_constructor_nearest_dc (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_nearest_dc *fetch_ds_type_bare_nearest_dc (struct paramed_type *T) { + return fetch_ds_constructor_nearest_dc (T); + assert (0); + return NULL; +} +struct tl_ds_notify_peer *fetch_ds_type_notify_peer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x9fd40bd8: return fetch_ds_constructor_notify_peer (T); break; + case 0xb4c83b4c: return fetch_ds_constructor_notify_users (T); break; + case 0xc007cec3: return fetch_ds_constructor_notify_chats (T); break; + case 0x74d07c60: return fetch_ds_constructor_notify_all (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_notify_peer *fetch_ds_type_bare_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_peer (T); } + if (skip_constructor_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_users (T); } + if (skip_constructor_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_chats (T); } + if (skip_constructor_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_all (T); } + assert (0); + return NULL; +} +struct tl_ds_null *fetch_ds_type_null (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x56730bcc: return fetch_ds_constructor_null (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_null *fetch_ds_type_bare_null (struct paramed_type *T) { + return fetch_ds_constructor_null (T); + assert (0); + return NULL; +} +struct tl_ds_p_q_inner_data *fetch_ds_type_p_q_inner_data (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x83c95aec: return fetch_ds_constructor_p_q_inner_data (T); break; + case 0x3c6a84d4: return fetch_ds_constructor_p_q_inner_data_temp (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_p_q_inner_data *fetch_ds_type_bare_p_q_inner_data (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_p_q_inner_data (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data (T); } + if (skip_constructor_p_q_inner_data_temp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data_temp (T); } + assert (0); + return NULL; +} +struct tl_ds_peer *fetch_ds_type_peer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x9db1bc6d: return fetch_ds_constructor_peer_user (T); break; + case 0xbad0e5bb: return fetch_ds_constructor_peer_chat (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_peer *fetch_ds_type_bare_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_user (T); } + if (skip_constructor_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_chat (T); } + assert (0); + return NULL; +} +struct tl_ds_peer_notify_events *fetch_ds_type_peer_notify_events (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xadd53cb3: return fetch_ds_constructor_peer_notify_events_empty (T); break; + case 0x6d1ded88: return fetch_ds_constructor_peer_notify_events_all (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_peer_notify_events *fetch_ds_type_bare_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_empty (T); } + if (skip_constructor_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_all (T); } + assert (0); + return NULL; +} +struct tl_ds_peer_notify_settings *fetch_ds_type_peer_notify_settings (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x70a68512: return fetch_ds_constructor_peer_notify_settings_empty (T); break; + case 0x8d5e11ee: return fetch_ds_constructor_peer_notify_settings (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_peer_notify_settings *fetch_ds_type_bare_peer_notify_settings (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_notify_settings_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings_empty (T); } + if (skip_constructor_peer_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings (T); } + assert (0); + return NULL; +} +struct tl_ds_photo *fetch_ds_type_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x2331b22d: return fetch_ds_constructor_photo_empty (T); break; + case 0xc3838076: return fetch_ds_constructor_photo (T); break; + case 0x22b56751: return fetch_ds_constructor_photo_l27 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_photo *fetch_ds_type_bare_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_empty (T); } + if (skip_constructor_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo (T); } + if (skip_constructor_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_l27 (T); } + assert (0); + return NULL; +} +struct tl_ds_photo_size *fetch_ds_type_photo_size (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0e17e23c: return fetch_ds_constructor_photo_size_empty (T); break; + case 0x77bfb61b: return fetch_ds_constructor_photo_size (T); break; + case 0xe9a734fa: return fetch_ds_constructor_photo_cached_size (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_photo_size *fetch_ds_type_bare_photo_size (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photo_size_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size_empty (T); } + if (skip_constructor_photo_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size (T); } + if (skip_constructor_photo_cached_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_cached_size (T); } + assert (0); + return NULL; +} +struct tl_ds_privacy_key *fetch_ds_type_privacy_key (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xbc2eab30: return fetch_ds_constructor_privacy_key_status_timestamp (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_privacy_key *fetch_ds_type_bare_privacy_key (struct paramed_type *T) { + return fetch_ds_constructor_privacy_key_status_timestamp (T); + assert (0); + return NULL; +} +struct tl_ds_privacy_rule *fetch_ds_type_privacy_rule (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xfffe1bac: return fetch_ds_constructor_privacy_value_allow_contacts (T); break; + case 0x65427b82: return fetch_ds_constructor_privacy_value_allow_all (T); break; + case 0x4d5bbe0c: return fetch_ds_constructor_privacy_value_allow_users (T); break; + case 0xf888fa1a: return fetch_ds_constructor_privacy_value_disallow_contacts (T); break; + case 0x8b73e763: return fetch_ds_constructor_privacy_value_disallow_all (T); break; + case 0x0c7f49b7: return fetch_ds_constructor_privacy_value_disallow_users (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_privacy_rule *fetch_ds_type_bare_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_contacts (T); } + if (skip_constructor_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_all (T); } + if (skip_constructor_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_users (T); } + if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_contacts (T); } + if (skip_constructor_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_all (T); } + if (skip_constructor_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_users (T); } + assert (0); + return NULL; +} +struct tl_ds_received_notify_message *fetch_ds_type_received_notify_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa384b779: return fetch_ds_constructor_received_notify_message (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_received_notify_message *fetch_ds_type_bare_received_notify_message (struct paramed_type *T) { + return fetch_ds_constructor_received_notify_message (T); + assert (0); + return NULL; +} +struct tl_ds_reply_markup *fetch_ds_type_reply_markup (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa03e5b85: return fetch_ds_constructor_reply_keyboard_hide (T); break; + case 0xf4108aa0: return fetch_ds_constructor_reply_keyboard_force_reply (T); break; + case 0x3502758c: return fetch_ds_constructor_reply_keyboard_markup (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_reply_markup *fetch_ds_type_bare_reply_markup (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_reply_keyboard_hide (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_hide (T); } + if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_force_reply (T); } + if (skip_constructor_reply_keyboard_markup (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_markup (T); } + assert (0); + return NULL; +} +struct tl_ds_res_p_q *fetch_ds_type_res_p_q (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x05162463: return fetch_ds_constructor_res_p_q (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_res_p_q *fetch_ds_type_bare_res_p_q (struct paramed_type *T) { + return fetch_ds_constructor_res_p_q (T); + assert (0); + return NULL; +} +struct tl_ds_send_message_action *fetch_ds_type_send_message_action (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x16bf744e: return fetch_ds_constructor_send_message_typing_action (T); break; + case 0xfd5ec8f5: return fetch_ds_constructor_send_message_cancel_action (T); break; + case 0xa187d66f: return fetch_ds_constructor_send_message_record_video_action (T); break; + case 0x92042ff7: return fetch_ds_constructor_send_message_upload_video_action_l27 (T); break; + case 0xe9763aec: return fetch_ds_constructor_send_message_upload_video_action (T); break; + case 0xd52f73f7: return fetch_ds_constructor_send_message_record_audio_action (T); break; + case 0xe6ac8a6f: return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); break; + case 0xf351d7ab: return fetch_ds_constructor_send_message_upload_audio_action (T); break; + case 0xd1d34a26: return fetch_ds_constructor_send_message_upload_photo_action (T); break; + case 0x8faee98e: return fetch_ds_constructor_send_message_upload_document_action_l27 (T); break; + case 0xaa0cd9e4: return fetch_ds_constructor_send_message_upload_document_action (T); break; + case 0x176f8ba1: return fetch_ds_constructor_send_message_geo_location_action (T); break; + case 0x628cbc6f: return fetch_ds_constructor_send_message_choose_contact_action (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_send_message_action *fetch_ds_type_bare_send_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_send_message_typing_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_typing_action (T); } + if (skip_constructor_send_message_cancel_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_cancel_action (T); } + if (skip_constructor_send_message_record_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_video_action (T); } + if (skip_constructor_send_message_upload_video_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action_l27 (T); } + if (skip_constructor_send_message_upload_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action (T); } + if (skip_constructor_send_message_record_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_audio_action (T); } + if (skip_constructor_send_message_upload_audio_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); } + if (skip_constructor_send_message_upload_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action (T); } + if (skip_constructor_send_message_upload_photo_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_photo_action (T); } + if (skip_constructor_send_message_upload_document_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action_l27 (T); } + if (skip_constructor_send_message_upload_document_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action (T); } + if (skip_constructor_send_message_geo_location_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_geo_location_action (T); } + if (skip_constructor_send_message_choose_contact_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_choose_contact_action (T); } + assert (0); + return NULL; +} +struct tl_ds_server_d_h_params *fetch_ds_type_server_d_h_params (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x79cb045d: return fetch_ds_constructor_server_d_h_params_fail (T); break; + case 0xd0e8075c: return fetch_ds_constructor_server_d_h_params_ok (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_server_d_h_params *fetch_ds_type_bare_server_d_h_params (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_server_d_h_params_fail (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_fail (T); } + if (skip_constructor_server_d_h_params_ok (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_ok (T); } + assert (0); + return NULL; +} +struct tl_ds_server_d_h_inner_data *fetch_ds_type_server_d_h_inner_data (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb5890dba: return fetch_ds_constructor_server_d_h_inner_data (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_server_d_h_inner_data *fetch_ds_type_bare_server_d_h_inner_data (struct paramed_type *T) { + return fetch_ds_constructor_server_d_h_inner_data (T); + assert (0); + return NULL; +} +struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_set_client_d_h_params_answer (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3bcbf734: return fetch_ds_constructor_dh_gen_ok (T); break; + case 0x46dc1fb9: return fetch_ds_constructor_dh_gen_retry (T); break; + case 0xa69dae02: return fetch_ds_constructor_dh_gen_fail (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_bare_set_client_d_h_params_answer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_dh_gen_ok (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_ok (T); } + if (skip_constructor_dh_gen_retry (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_retry (T); } + if (skip_constructor_dh_gen_fail (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_fail (T); } + assert (0); + return NULL; +} +struct tl_ds_sticker_pack *fetch_ds_type_sticker_pack (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x12b299d4: return fetch_ds_constructor_sticker_pack (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_sticker_pack *fetch_ds_type_bare_sticker_pack (struct paramed_type *T) { + return fetch_ds_constructor_sticker_pack (T); + assert (0); + return NULL; +} +struct tl_ds_sticker_set *fetch_ds_type_sticker_set (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa7a43b17: return fetch_ds_constructor_sticker_set (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_sticker_set *fetch_ds_type_bare_sticker_set (struct paramed_type *T) { + return fetch_ds_constructor_sticker_set (T); + assert (0); + return NULL; +} +struct tl_ds_string *fetch_ds_type_string (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb5286e24: return fetch_ds_constructor_string (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_string *fetch_ds_type_bare_string (struct paramed_type *T) { + return fetch_ds_constructor_string (T); + assert (0); + return NULL; +} +struct tl_ds_update *fetch_ds_type_update (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1f2b0afd: return fetch_ds_constructor_update_new_message (T); break; + case 0x4e90bfd6: return fetch_ds_constructor_update_message_i_d (T); break; + case 0xa20db0e5: return fetch_ds_constructor_update_delete_messages (T); break; + case 0x5c486927: return fetch_ds_constructor_update_user_typing (T); break; + case 0x9a65ea1f: return fetch_ds_constructor_update_chat_user_typing (T); break; + case 0x07761198: return fetch_ds_constructor_update_chat_participants (T); break; + case 0x1bfbd823: return fetch_ds_constructor_update_user_status (T); break; + case 0xa7332b73: return fetch_ds_constructor_update_user_name (T); break; + case 0x95313b0c: return fetch_ds_constructor_update_user_photo (T); break; + case 0x2575bbb9: return fetch_ds_constructor_update_contact_registered (T); break; + case 0x9d2e67c5: return fetch_ds_constructor_update_contact_link (T); break; + case 0x8f06529a: return fetch_ds_constructor_update_new_authorization (T); break; + case 0x5a68e3f7: return fetch_ds_constructor_update_new_geo_chat_message (T); break; + case 0x12bcbd9a: return fetch_ds_constructor_update_new_encrypted_message (T); break; + case 0x1710f156: return fetch_ds_constructor_update_encrypted_chat_typing (T); break; + case 0xb4a2e88d: return fetch_ds_constructor_update_encryption (T); break; + case 0x38fe25b7: return fetch_ds_constructor_update_encrypted_messages_read (T); break; + case 0x3a0eeb22: return fetch_ds_constructor_update_chat_participant_add (T); break; + case 0x6e5f8c22: return fetch_ds_constructor_update_chat_participant_delete (T); break; + case 0x8e5e9873: return fetch_ds_constructor_update_dc_options (T); break; + case 0x80ece81a: return fetch_ds_constructor_update_user_blocked (T); break; + case 0xbec268ef: return fetch_ds_constructor_update_notify_settings (T); break; + case 0x382dd3e4: return fetch_ds_constructor_update_service_notification (T); break; + case 0xee3b272a: return fetch_ds_constructor_update_privacy (T); break; + case 0x12b9417b: return fetch_ds_constructor_update_user_phone (T); break; + case 0x9961fd5c: return fetch_ds_constructor_update_read_history_inbox (T); break; + case 0x2f2f21bf: return fetch_ds_constructor_update_read_history_outbox (T); break; + case 0x2cc36971: return fetch_ds_constructor_update_web_page (T); break; + case 0x68c13933: return fetch_ds_constructor_update_read_messages_contents (T); break; + case 0x03114739: return fetch_ds_constructor_update_msg_update (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_update *fetch_ds_type_bare_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_update_new_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_message (T); } + if (skip_constructor_update_message_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_message_i_d (T); } + if (skip_constructor_update_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_delete_messages (T); } + if (skip_constructor_update_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_typing (T); } + if (skip_constructor_update_chat_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_user_typing (T); } + if (skip_constructor_update_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participants (T); } + if (skip_constructor_update_user_status (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_status (T); } + if (skip_constructor_update_user_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_name (T); } + if (skip_constructor_update_user_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_photo (T); } + if (skip_constructor_update_contact_registered (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_registered (T); } + if (skip_constructor_update_contact_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_link (T); } + if (skip_constructor_update_new_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_authorization (T); } + if (skip_constructor_update_new_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_geo_chat_message (T); } + if (skip_constructor_update_new_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_encrypted_message (T); } + if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_chat_typing (T); } + if (skip_constructor_update_encryption (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encryption (T); } + if (skip_constructor_update_encrypted_messages_read (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_messages_read (T); } + if (skip_constructor_update_chat_participant_add (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_add (T); } + if (skip_constructor_update_chat_participant_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_delete (T); } + if (skip_constructor_update_dc_options (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_dc_options (T); } + if (skip_constructor_update_user_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_blocked (T); } + if (skip_constructor_update_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_notify_settings (T); } + if (skip_constructor_update_service_notification (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_service_notification (T); } + if (skip_constructor_update_privacy (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_privacy (T); } + if (skip_constructor_update_user_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_phone (T); } + if (skip_constructor_update_read_history_inbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_inbox (T); } + if (skip_constructor_update_read_history_outbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_outbox (T); } + if (skip_constructor_update_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_web_page (T); } + if (skip_constructor_update_read_messages_contents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_messages_contents (T); } + if (skip_constructor_update_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_msg_update (T); } + assert (0); + return NULL; +} +struct tl_ds_updates *fetch_ds_type_updates (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xe317af7e: return fetch_ds_constructor_updates_too_long (T); break; + case 0xed5c2127: return fetch_ds_constructor_update_short_message (T); break; + case 0x52238b3c: return fetch_ds_constructor_update_short_chat_message (T); break; + case 0x78d4dec1: return fetch_ds_constructor_update_short (T); break; + case 0x725b04c3: return fetch_ds_constructor_updates_combined (T); break; + case 0x74ae4240: return fetch_ds_constructor_updates (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_updates *fetch_ds_type_bare_updates (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_updates_too_long (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_too_long (T); } + if (skip_constructor_update_short_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_message (T); } + if (skip_constructor_update_short_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_chat_message (T); } + if (skip_constructor_update_short (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short (T); } + if (skip_constructor_updates_combined (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_combined (T); } + if (skip_constructor_updates (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates (T); } + assert (0); + return NULL; +} +struct tl_ds_user *fetch_ds_type_user (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x200250ba: return fetch_ds_constructor_user_empty (T); break; + case 0x22e49072: return fetch_ds_constructor_user (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_user *fetch_ds_type_bare_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_empty (T); } + if (skip_constructor_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user (T); } + assert (0); + return NULL; +} +struct tl_ds_user_full *fetch_ds_type_user_full (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5a89ac5b: return fetch_ds_constructor_user_full (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_user_full *fetch_ds_type_bare_user_full (struct paramed_type *T) { + return fetch_ds_constructor_user_full (T); + assert (0); + return NULL; +} +struct tl_ds_user_profile_photo *fetch_ds_type_user_profile_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x4f11bae1: return fetch_ds_constructor_user_profile_photo_empty (T); break; + case 0xd559d8c8: return fetch_ds_constructor_user_profile_photo (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_user_profile_photo *fetch_ds_type_bare_user_profile_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_profile_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo_empty (T); } + if (skip_constructor_user_profile_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo (T); } + assert (0); + return NULL; +} +struct tl_ds_user_status *fetch_ds_type_user_status (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x09d05049: return fetch_ds_constructor_user_status_empty (T); break; + case 0xedb93949: return fetch_ds_constructor_user_status_online (T); break; + case 0x008c703f: return fetch_ds_constructor_user_status_offline (T); break; + case 0xe26f42f1: return fetch_ds_constructor_user_status_recently (T); break; + case 0x07bf09fc: return fetch_ds_constructor_user_status_last_week (T); break; + case 0x77ebc742: return fetch_ds_constructor_user_status_last_month (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_user_status *fetch_ds_type_bare_user_status (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_status_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_empty (T); } + if (skip_constructor_user_status_online (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_online (T); } + if (skip_constructor_user_status_offline (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_offline (T); } + if (skip_constructor_user_status_recently (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_recently (T); } + if (skip_constructor_user_status_last_week (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_week (T); } + if (skip_constructor_user_status_last_month (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_month (T); } + assert (0); + return NULL; +} +struct tl_ds_vector *fetch_ds_type_vector (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1cb5c415: return fetch_ds_constructor_vector (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_vector *fetch_ds_type_bare_vector (struct paramed_type *T) { + return fetch_ds_constructor_vector (T); + assert (0); + return NULL; +} +struct tl_ds_video *fetch_ds_type_video (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc10658a8: return fetch_ds_constructor_video_empty (T); break; + case 0xee9f4a4d: return fetch_ds_constructor_video (T); break; + case 0x388fa391: return fetch_ds_constructor_video_l27 (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_video *fetch_ds_type_bare_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_empty (T); } + if (skip_constructor_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video (T); } + if (skip_constructor_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_l27 (T); } + assert (0); + return NULL; +} +struct tl_ds_wall_paper *fetch_ds_type_wall_paper (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xccb03657: return fetch_ds_constructor_wall_paper (T); break; + case 0x63117f24: return fetch_ds_constructor_wall_paper_solid (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_wall_paper *fetch_ds_type_bare_wall_paper (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_wall_paper (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper (T); } + if (skip_constructor_wall_paper_solid (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper_solid (T); } + assert (0); + return NULL; +} +struct tl_ds_web_page *fetch_ds_type_web_page (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xeb1477e8: return fetch_ds_constructor_web_page_empty (T); break; + case 0xc586da1c: return fetch_ds_constructor_web_page_pending (T); break; + case 0xa31ea0b5: return fetch_ds_constructor_web_page (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_web_page *fetch_ds_type_bare_web_page (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_web_page_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_empty (T); } + if (skip_constructor_web_page_pending (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_pending (T); } + if (skip_constructor_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page (T); } + assert (0); + return NULL; +} +struct tl_ds_account_authorizations *fetch_ds_type_account_authorizations (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1250abde: return fetch_ds_constructor_account_authorizations (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_authorizations *fetch_ds_type_bare_account_authorizations (struct paramed_type *T) { + return fetch_ds_constructor_account_authorizations (T); + assert (0); + return NULL; +} +struct tl_ds_account_password *fetch_ds_type_account_password (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x96dabc18: return fetch_ds_constructor_account_no_password (T); break; + case 0x7c18141c: return fetch_ds_constructor_account_password (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_password *fetch_ds_type_bare_account_password (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_account_no_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_no_password (T); } + if (skip_constructor_account_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_password (T); } + assert (0); + return NULL; +} +struct tl_ds_account_password_input_settings *fetch_ds_type_account_password_input_settings (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xbcfc532c: return fetch_ds_constructor_account_password_input_settings (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_password_input_settings *fetch_ds_type_bare_account_password_input_settings (struct paramed_type *T) { + return fetch_ds_constructor_account_password_input_settings (T); + assert (0); + return NULL; +} +struct tl_ds_account_password_settings *fetch_ds_type_account_password_settings (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb7b72ab3: return fetch_ds_constructor_account_password_settings (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_password_settings *fetch_ds_type_bare_account_password_settings (struct paramed_type *T) { + return fetch_ds_constructor_account_password_settings (T); + assert (0); + return NULL; +} +struct tl_ds_account_privacy_rules *fetch_ds_type_account_privacy_rules (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x554abb6f: return fetch_ds_constructor_account_privacy_rules (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_privacy_rules *fetch_ds_type_bare_account_privacy_rules (struct paramed_type *T) { + return fetch_ds_constructor_account_privacy_rules (T); + assert (0); + return NULL; +} +struct tl_ds_account_sent_change_phone_code *fetch_ds_type_account_sent_change_phone_code (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa4f58c4c: return fetch_ds_constructor_account_sent_change_phone_code (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_account_sent_change_phone_code *fetch_ds_type_bare_account_sent_change_phone_code (struct paramed_type *T) { + return fetch_ds_constructor_account_sent_change_phone_code (T); + assert (0); + return NULL; +} +struct tl_ds_auth_authorization *fetch_ds_type_auth_authorization (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xff036af1: return fetch_ds_constructor_auth_authorization (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_auth_authorization *fetch_ds_type_bare_auth_authorization (struct paramed_type *T) { + return fetch_ds_constructor_auth_authorization (T); + assert (0); + return NULL; +} +struct tl_ds_auth_checked_phone *fetch_ds_type_auth_checked_phone (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x811ea28e: return fetch_ds_constructor_auth_checked_phone (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_auth_checked_phone *fetch_ds_type_bare_auth_checked_phone (struct paramed_type *T) { + return fetch_ds_constructor_auth_checked_phone (T); + assert (0); + return NULL; +} +struct tl_ds_auth_exported_authorization *fetch_ds_type_auth_exported_authorization (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xdf969c2d: return fetch_ds_constructor_auth_exported_authorization (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_auth_exported_authorization *fetch_ds_type_bare_auth_exported_authorization (struct paramed_type *T) { + return fetch_ds_constructor_auth_exported_authorization (T); + assert (0); + return NULL; +} +struct tl_ds_auth_password_recovery *fetch_ds_type_auth_password_recovery (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x137948a5: return fetch_ds_constructor_auth_password_recovery (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_auth_password_recovery *fetch_ds_type_bare_auth_password_recovery (struct paramed_type *T) { + return fetch_ds_constructor_auth_password_recovery (T); + assert (0); + return NULL; +} +struct tl_ds_auth_sent_code *fetch_ds_type_auth_sent_code (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xefed51d9: return fetch_ds_constructor_auth_sent_code (T); break; + case 0xe325edcf: return fetch_ds_constructor_auth_sent_app_code (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_auth_sent_code *fetch_ds_type_bare_auth_sent_code (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_auth_sent_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_code (T); } + if (skip_constructor_auth_sent_app_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_app_code (T); } + assert (0); + return NULL; +} +struct tl_ds_binlog_encr_key *fetch_ds_type_binlog_encr_key (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0377168f: return fetch_ds_constructor_binlog_encr_key (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_binlog_encr_key *fetch_ds_type_bare_binlog_encr_key (struct paramed_type *T) { + return fetch_ds_constructor_binlog_encr_key (T); + assert (0); + return NULL; +} +struct tl_ds_binlog_update *fetch_ds_type_binlog_update (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3b06de69: return fetch_ds_constructor_binlog_start (T); break; + case 0xf96feb32: return fetch_ds_constructor_binlog_dc_option (T); break; + case 0x7c0d22d8: return fetch_ds_constructor_binlog_dc_option_new (T); break; + case 0x71e8c156: return fetch_ds_constructor_binlog_auth_key (T); break; + case 0x9e83dbdc: return fetch_ds_constructor_binlog_default_dc (T); break; + case 0x26451bb5: return fetch_ds_constructor_binlog_dc_signed (T); break; + case 0x68a870e8: return fetch_ds_constructor_binlog_our_id (T); break; + case 0xeaeb7826: return fetch_ds_constructor_binlog_set_dh_params (T); break; + case 0x2ca8c939: return fetch_ds_constructor_binlog_set_pts (T); break; + case 0xd95738ac: return fetch_ds_constructor_binlog_set_qts (T); break; + case 0x1d0f4b52: return fetch_ds_constructor_binlog_set_date (T); break; + case 0x6eeb2989: return fetch_ds_constructor_binlog_set_seq (T); break; + case 0xee1b38e8: return fetch_ds_constructor_binlog_encr_chat_delete (T); break; + case 0x84977251: return fetch_ds_constructor_binlog_encr_chat_new (T); break; + case 0x9d49488d: return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); break; + case 0xac55d447: return fetch_ds_constructor_binlog_user_delete (T); break; + case 0x127cf2f9: return fetch_ds_constructor_binlog_user_new (T); break; + case 0x0a10aa92: return fetch_ds_constructor_binlog_chat_new (T); break; + case 0x535475ea: return fetch_ds_constructor_binlog_chat_add_participant (T); break; + case 0x7dd1a1a2: return fetch_ds_constructor_binlog_chat_del_participant (T); break; + case 0x3c873416: return fetch_ds_constructor_binlog_set_msg_id (T); break; + case 0x847e77b1: return fetch_ds_constructor_binlog_message_delete (T); break; + case 0x427cfcdb: return fetch_ds_constructor_binlog_message_new (T); break; + case 0x6cf7cabc: return fetch_ds_constructor_binlog_message_encr_new (T); break; + case 0x6dd4d85f: return fetch_ds_constructor_binlog_msg_update (T); break; + case 0x83327955: return fetch_ds_constructor_binlog_reset_authorization (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_binlog_update *fetch_ds_type_bare_binlog_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_binlog_start (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_start (T); } + if (skip_constructor_binlog_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option (T); } + if (skip_constructor_binlog_dc_option_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option_new (T); } + if (skip_constructor_binlog_auth_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_auth_key (T); } + if (skip_constructor_binlog_default_dc (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_default_dc (T); } + if (skip_constructor_binlog_dc_signed (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_signed (T); } + if (skip_constructor_binlog_our_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_our_id (T); } + if (skip_constructor_binlog_set_dh_params (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_dh_params (T); } + if (skip_constructor_binlog_set_pts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_pts (T); } + if (skip_constructor_binlog_set_qts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_qts (T); } + if (skip_constructor_binlog_set_date (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_date (T); } + if (skip_constructor_binlog_set_seq (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_seq (T); } + if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_delete (T); } + if (skip_constructor_binlog_encr_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_new (T); } + if (skip_constructor_binlog_encr_chat_exchange_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); } + if (skip_constructor_binlog_user_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_delete (T); } + if (skip_constructor_binlog_user_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_new (T); } + if (skip_constructor_binlog_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_new (T); } + if (skip_constructor_binlog_chat_add_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_add_participant (T); } + if (skip_constructor_binlog_chat_del_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_del_participant (T); } + if (skip_constructor_binlog_set_msg_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_msg_id (T); } + if (skip_constructor_binlog_message_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_delete (T); } + if (skip_constructor_binlog_message_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_new (T); } + if (skip_constructor_binlog_message_encr_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_encr_new (T); } + if (skip_constructor_binlog_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_msg_update (T); } + if (skip_constructor_binlog_reset_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_reset_authorization (T); } + assert (0); + return NULL; +} +struct tl_ds_contacts_blocked *fetch_ds_type_contacts_blocked (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x1c138d15: return fetch_ds_constructor_contacts_blocked (T); break; + case 0x900802a1: return fetch_ds_constructor_contacts_blocked_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_blocked *fetch_ds_type_bare_contacts_blocked (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contacts_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked (T); } + if (skip_constructor_contacts_blocked_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_contacts_contacts *fetch_ds_type_contacts_contacts (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb74ba9d2: return fetch_ds_constructor_contacts_contacts_not_modified (T); break; + case 0x6f8b8cb2: return fetch_ds_constructor_contacts_contacts (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_contacts *fetch_ds_type_bare_contacts_contacts (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts_not_modified (T); } + if (skip_constructor_contacts_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts (T); } + assert (0); + return NULL; +} +struct tl_ds_contacts_found *fetch_ds_type_contacts_found (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x0566000e: return fetch_ds_constructor_contacts_found (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_found *fetch_ds_type_bare_contacts_found (struct paramed_type *T) { + return fetch_ds_constructor_contacts_found (T); + assert (0); + return NULL; +} +struct tl_ds_contacts_imported_contacts *fetch_ds_type_contacts_imported_contacts (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xad524315: return fetch_ds_constructor_contacts_imported_contacts (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_imported_contacts *fetch_ds_type_bare_contacts_imported_contacts (struct paramed_type *T) { + return fetch_ds_constructor_contacts_imported_contacts (T); + assert (0); + return NULL; +} +struct tl_ds_contacts_link *fetch_ds_type_contacts_link (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3ace484c: return fetch_ds_constructor_contacts_link (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_link *fetch_ds_type_bare_contacts_link (struct paramed_type *T) { + return fetch_ds_constructor_contacts_link (T); + assert (0); + return NULL; +} +struct tl_ds_contacts_suggested *fetch_ds_type_contacts_suggested (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5649dcc5: return fetch_ds_constructor_contacts_suggested (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_contacts_suggested *fetch_ds_type_bare_contacts_suggested (struct paramed_type *T) { + return fetch_ds_constructor_contacts_suggested (T); + assert (0); + return NULL; +} +struct tl_ds_geochats_located *fetch_ds_type_geochats_located (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x48feb267: return fetch_ds_constructor_geochats_located (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_geochats_located *fetch_ds_type_bare_geochats_located (struct paramed_type *T) { + return fetch_ds_constructor_geochats_located (T); + assert (0); + return NULL; +} +struct tl_ds_geochats_messages *fetch_ds_type_geochats_messages (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xd1526db1: return fetch_ds_constructor_geochats_messages (T); break; + case 0xbc5863e8: return fetch_ds_constructor_geochats_messages_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_geochats_messages *fetch_ds_type_bare_geochats_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geochats_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages (T); } + if (skip_constructor_geochats_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_geochats_stated_message *fetch_ds_type_geochats_stated_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x17b1578b: return fetch_ds_constructor_geochats_stated_message (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_geochats_stated_message *fetch_ds_type_bare_geochats_stated_message (struct paramed_type *T) { + return fetch_ds_constructor_geochats_stated_message (T); + assert (0); + return NULL; +} +struct tl_ds_help_app_update *fetch_ds_type_help_app_update (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x8987f311: return fetch_ds_constructor_help_app_update (T); break; + case 0xc45a6536: return fetch_ds_constructor_help_no_app_update (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_help_app_update *fetch_ds_type_bare_help_app_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_help_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_app_update (T); } + if (skip_constructor_help_no_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_no_app_update (T); } + assert (0); + return NULL; +} +struct tl_ds_help_invite_text *fetch_ds_type_help_invite_text (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x18cb9f78: return fetch_ds_constructor_help_invite_text (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_help_invite_text *fetch_ds_type_bare_help_invite_text (struct paramed_type *T) { + return fetch_ds_constructor_help_invite_text (T); + assert (0); + return NULL; +} +struct tl_ds_help_support *fetch_ds_type_help_support (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x17c6b5f6: return fetch_ds_constructor_help_support (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_help_support *fetch_ds_type_bare_help_support (struct paramed_type *T) { + return fetch_ds_constructor_help_support (T); + assert (0); + return NULL; +} +struct tl_ds_messages_affected_history *fetch_ds_type_messages_affected_history (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb45c69d1: return fetch_ds_constructor_messages_affected_history (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_affected_history *fetch_ds_type_bare_messages_affected_history (struct paramed_type *T) { + return fetch_ds_constructor_messages_affected_history (T); + assert (0); + return NULL; +} +struct tl_ds_messages_affected_messages *fetch_ds_type_messages_affected_messages (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x84d19185: return fetch_ds_constructor_messages_affected_messages (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_affected_messages *fetch_ds_type_bare_messages_affected_messages (struct paramed_type *T) { + return fetch_ds_constructor_messages_affected_messages (T); + assert (0); + return NULL; +} +struct tl_ds_messages_all_stickers *fetch_ds_type_messages_all_stickers (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xe86602c3: return fetch_ds_constructor_messages_all_stickers_not_modified (T); break; + case 0x5ce352ec: return fetch_ds_constructor_messages_all_stickers (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_all_stickers *fetch_ds_type_bare_messages_all_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers_not_modified (T); } + if (skip_constructor_messages_all_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_chat_full *fetch_ds_type_messages_chat_full (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xe5d7d19c: return fetch_ds_constructor_messages_chat_full (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_chat_full *fetch_ds_type_bare_messages_chat_full (struct paramed_type *T) { + return fetch_ds_constructor_messages_chat_full (T); + assert (0); + return NULL; +} +struct tl_ds_messages_chats *fetch_ds_type_messages_chats (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x64ff9fd5: return fetch_ds_constructor_messages_chats (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_chats *fetch_ds_type_bare_messages_chats (struct paramed_type *T) { + return fetch_ds_constructor_messages_chats (T); + assert (0); + return NULL; +} +struct tl_ds_messages_dh_config *fetch_ds_type_messages_dh_config (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xc0e24635: return fetch_ds_constructor_messages_dh_config_not_modified (T); break; + case 0x2c221edd: return fetch_ds_constructor_messages_dh_config (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_dh_config *fetch_ds_type_bare_messages_dh_config (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config_not_modified (T); } + if (skip_constructor_messages_dh_config (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_dialogs *fetch_ds_type_messages_dialogs (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x15ba6c40: return fetch_ds_constructor_messages_dialogs (T); break; + case 0x71e094f3: return fetch_ds_constructor_messages_dialogs_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_dialogs *fetch_ds_type_bare_messages_dialogs (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_dialogs (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs (T); } + if (skip_constructor_messages_dialogs_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_message *fetch_ds_type_messages_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x3f4e0648: return fetch_ds_constructor_messages_message_empty (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_message *fetch_ds_type_bare_messages_message (struct paramed_type *T) { + return fetch_ds_constructor_messages_message_empty (T); + assert (0); + return NULL; +} +struct tl_ds_messages_messages *fetch_ds_type_messages_messages (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x8c718e87: return fetch_ds_constructor_messages_messages (T); break; + case 0x0b446ae3: return fetch_ds_constructor_messages_messages_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_messages *fetch_ds_type_bare_messages_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages (T); } + if (skip_constructor_messages_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_messages_sent_encrypted_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x560f8935: return fetch_ds_constructor_messages_sent_encrypted_message (T); break; + case 0x9493ff32: return fetch_ds_constructor_messages_sent_encrypted_file (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_bare_messages_sent_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_message (T); } + if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_file (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_sent_message *fetch_ds_type_messages_sent_message (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x4c3d47f3: return fetch_ds_constructor_messages_sent_message (T); break; + case 0x35a1a663: return fetch_ds_constructor_messages_sent_message_link (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_sent_message *fetch_ds_type_bare_messages_sent_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_sent_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message (T); } + if (skip_constructor_messages_sent_message_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message_link (T); } + assert (0); + return NULL; +} +struct tl_ds_messages_sticker_set *fetch_ds_type_messages_sticker_set (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xb60a24a6: return fetch_ds_constructor_messages_sticker_set (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_sticker_set *fetch_ds_type_bare_messages_sticker_set (struct paramed_type *T) { + return fetch_ds_constructor_messages_sticker_set (T); + assert (0); + return NULL; +} +struct tl_ds_messages_stickers *fetch_ds_type_messages_stickers (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xf1749a22: return fetch_ds_constructor_messages_stickers_not_modified (T); break; + case 0x8a8ecd32: return fetch_ds_constructor_messages_stickers (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_messages_stickers *fetch_ds_type_bare_messages_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers_not_modified (T); } + if (skip_constructor_messages_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers (T); } + assert (0); + return NULL; +} +struct tl_ds_photos_photo *fetch_ds_type_photos_photo (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x20212ca8: return fetch_ds_constructor_photos_photo (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_photos_photo *fetch_ds_type_bare_photos_photo (struct paramed_type *T) { + return fetch_ds_constructor_photos_photo (T); + assert (0); + return NULL; +} +struct tl_ds_photos_photos *fetch_ds_type_photos_photos (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x8dca6aa5: return fetch_ds_constructor_photos_photos (T); break; + case 0x15051f54: return fetch_ds_constructor_photos_photos_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_photos_photos *fetch_ds_type_bare_photos_photos (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photos_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos (T); } + if (skip_constructor_photos_photos_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_storage_file_type *fetch_ds_type_storage_file_type (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xaa963b05: return fetch_ds_constructor_storage_file_unknown (T); break; + case 0x007efe0e: return fetch_ds_constructor_storage_file_jpeg (T); break; + case 0xcae1aadf: return fetch_ds_constructor_storage_file_gif (T); break; + case 0x0a4f63c0: return fetch_ds_constructor_storage_file_png (T); break; + case 0xae1e508d: return fetch_ds_constructor_storage_file_pdf (T); break; + case 0x528a0677: return fetch_ds_constructor_storage_file_mp3 (T); break; + case 0x4b09ebbc: return fetch_ds_constructor_storage_file_mov (T); break; + case 0x40bc6f52: return fetch_ds_constructor_storage_file_partial (T); break; + case 0xb3cea0e4: return fetch_ds_constructor_storage_file_mp4 (T); break; + case 0x1081464c: return fetch_ds_constructor_storage_file_webp (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_storage_file_type *fetch_ds_type_bare_storage_file_type (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_storage_file_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_unknown (T); } + if (skip_constructor_storage_file_jpeg (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_jpeg (T); } + if (skip_constructor_storage_file_gif (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_gif (T); } + if (skip_constructor_storage_file_png (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_png (T); } + if (skip_constructor_storage_file_pdf (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_pdf (T); } + if (skip_constructor_storage_file_mp3 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp3 (T); } + if (skip_constructor_storage_file_mov (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mov (T); } + if (skip_constructor_storage_file_partial (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_partial (T); } + if (skip_constructor_storage_file_mp4 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp4 (T); } + if (skip_constructor_storage_file_webp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_webp (T); } + assert (0); + return NULL; +} +struct tl_ds_updates_difference *fetch_ds_type_updates_difference (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x5d75a138: return fetch_ds_constructor_updates_difference_empty (T); break; + case 0x00f49ca0: return fetch_ds_constructor_updates_difference (T); break; + case 0xa8fb1981: return fetch_ds_constructor_updates_difference_slice (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_updates_difference *fetch_ds_type_bare_updates_difference (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_updates_difference_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_empty (T); } + if (skip_constructor_updates_difference (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference (T); } + if (skip_constructor_updates_difference_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_slice (T); } + assert (0); + return NULL; +} +struct tl_ds_updates_state *fetch_ds_type_updates_state (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0xa56c2a3e: return fetch_ds_constructor_updates_state (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_updates_state *fetch_ds_type_bare_updates_state (struct paramed_type *T) { + return fetch_ds_constructor_updates_state (T); + assert (0); + return NULL; +} +struct tl_ds_upload_file *fetch_ds_type_upload_file (struct paramed_type *T) { + assert (in_remaining () >= 4); + int magic = fetch_int (); + switch (magic) { + case 0x096a18d5: return fetch_ds_constructor_upload_file (T); break; + default: assert (0); return NULL; + } +} +struct tl_ds_upload_file *fetch_ds_type_bare_upload_file (struct paramed_type *T) { + return fetch_ds_constructor_upload_file (T); + assert (0); + return NULL; +} +void *fetch_ds_type_any (struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return fetch_ds_type_account_days_t_t_l (T); + case 0x472f5020: return fetch_ds_type_bare_account_days_t_t_l (T); + case 0x9fc5ec4e: return fetch_ds_type_audio (T); + case 0x603a13b1: return fetch_ds_type_bare_audio (T); + case 0x7bf2e6f6: return fetch_ds_type_authorization (T); + case 0x840d1909: return fetch_ds_type_bare_authorization (T); + case 0x250be282: return fetch_ds_type_bool (T); + case 0xdaf41d7d: return fetch_ds_type_bare_bool (T); + case 0x75e7ea6c: return fetch_ds_type_bot_command (T); + case 0x8a181593: return fetch_ds_type_bare_bot_command (T); + case 0xb2e16f93: return fetch_ds_type_bot_info (T); + case 0x4d1e906c: return fetch_ds_type_bare_bot_info (T); + case 0x0ee1379f: return fetch_ds_type_bytes (T); + case 0xf11ec860: return fetch_ds_type_bare_bytes (T); + case 0x7bd865dc: return fetch_ds_type_chat (T); + case 0x84279a23: return fetch_ds_type_bare_chat (T); + case 0x2e02a614: return fetch_ds_type_chat_full (T); + case 0xd1fd59eb: return fetch_ds_type_bare_chat_full (T); + case 0x94f910b1: return fetch_ds_type_chat_invite (T); + case 0x6b06ef4e: return fetch_ds_type_bare_chat_invite (T); + case 0x3631cf4c: return fetch_ds_type_chat_located (T); + case 0xc9ce30b3: return fetch_ds_type_bare_chat_located (T); + case 0xc8d7493e: return fetch_ds_type_chat_participant (T); + case 0x3728b6c1: return fetch_ds_type_bare_chat_participant (T); + case 0x77930f9f: return fetch_ds_type_chat_participants (T); + case 0x886cf060: return fetch_ds_type_bare_chat_participants (T); + case 0x56922676: return fetch_ds_type_chat_photo (T); + case 0xa96dd989: return fetch_ds_type_bare_chat_photo (T); + case 0x6643b654: return fetch_ds_type_client_d_h_inner_data (T); + case 0x99bc49ab: return fetch_ds_type_bare_client_d_h_inner_data (T); + case 0x4e32b894: return fetch_ds_type_config (T); + case 0xb1cd476b: return fetch_ds_type_bare_config (T); + case 0xf911c994: return fetch_ds_type_contact (T); + case 0x06ee366b: return fetch_ds_type_bare_contact (T); + case 0x561bc879: return fetch_ds_type_contact_blocked (T); + case 0xa9e43786: return fetch_ds_type_bare_contact_blocked (T); + case 0xea879f95: return fetch_ds_type_contact_found (T); + case 0x1578606a: return fetch_ds_type_bare_contact_found (T); + case 0x522fbc63: return fetch_ds_type_contact_link (T); + case 0xadd0439c: return fetch_ds_type_bare_contact_link (T); + case 0xd3680c61: return fetch_ds_type_contact_status (T); + case 0x2c97f39e: return fetch_ds_type_bare_contact_status (T); + case 0x3de191a1: return fetch_ds_type_contact_suggested (T); + case 0xc21e6e5e: return fetch_ds_type_bare_contact_suggested (T); + case 0x2b1a62f0: return fetch_ds_type_dc_option (T); + case 0xd4e59d0f: return fetch_ds_type_bare_dc_option (T); + case 0x535b7918: return fetch_ds_type_decrypted_message (T); + case 0xaca486e7: return fetch_ds_type_bare_decrypted_message (T); + case 0x4e0eefde: return fetch_ds_type_decrypted_message_action (T); + case 0xb1f11021: return fetch_ds_type_bare_decrypted_message_action (T); + case 0x1be31789: return fetch_ds_type_decrypted_message_layer (T); + case 0xe41ce876: return fetch_ds_type_bare_decrypted_message_layer (T); + case 0x34e0d674: return fetch_ds_type_decrypted_message_media (T); + case 0xcb1f298b: return fetch_ds_type_bare_decrypted_message_media (T); + case 0xc1dd804a: return fetch_ds_type_dialog (T); + case 0x3e227fb5: return fetch_ds_type_bare_dialog (T); + case 0xae636f24: return fetch_ds_type_disabled_feature (T); + case 0x519c90db: return fetch_ds_type_bare_disabled_feature (T); + case 0x51a73418: return fetch_ds_type_document (T); + case 0xae58cbe7: return fetch_ds_type_bare_document (T); + case 0x97c637a3: return fetch_ds_type_document_attribute (T); + case 0x6839c85c: return fetch_ds_type_bare_document_attribute (T); + case 0x2210c154: return fetch_ds_type_double (T); + case 0xddef3eab: return fetch_ds_type_bare_double (T); + case 0xb1718213: return fetch_ds_type_encrypted_chat (T); + case 0x4e8e7dec: return fetch_ds_type_bare_encrypted_chat (T); + case 0x886fd032: return fetch_ds_type_encrypted_file (T); + case 0x77902fcd: return fetch_ds_type_bare_encrypted_file (T); + case 0xce6b8a1e: return fetch_ds_type_encrypted_message (T); + case 0x319475e1: return fetch_ds_type_bare_encrypted_message (T); + case 0xc4b9f9bb: return fetch_ds_type_error (T); + case 0x3b460644: return fetch_ds_type_bare_error (T); + case 0x95f132d5: return fetch_ds_type_exported_chat_invite (T); + case 0x6a0ecd2a: return fetch_ds_type_bare_exported_chat_invite (T); + case 0x2f8ffb30: return fetch_ds_type_file_location (T); + case 0xd07004cf: return fetch_ds_type_bare_file_location (T); + case 0xf67b4034: return fetch_ds_type_geo_chat_message (T); + case 0x0984bfcb: return fetch_ds_type_bare_geo_chat_message (T); + case 0x315e0a53: return fetch_ds_type_geo_point (T); + case 0xcea1f5ac: return fetch_ds_type_bare_geo_point (T); + case 0xd0028438: return fetch_ds_type_imported_contact (T); + case 0x2ffd7bc7: return fetch_ds_type_bare_imported_contact (T); + case 0x770656a8: return fetch_ds_type_input_app_event (T); + case 0x88f9a957: return fetch_ds_type_bare_input_app_event (T); + case 0xae8e9c7b: return fetch_ds_type_input_audio (T); + case 0x51716384: return fetch_ds_type_bare_input_audio (T); + case 0x3a60776d: return fetch_ds_type_input_chat_photo (T); + case 0xc59f8892: return fetch_ds_type_bare_input_chat_photo (T); + case 0xf392b7f4: return fetch_ds_type_input_contact (T); + case 0x0c6d480b: return fetch_ds_type_bare_input_contact (T); + case 0x6a8963fc: return fetch_ds_type_input_document (T); + case 0x95769c03: return fetch_ds_type_bare_input_document (T); + case 0xf141b5e1: return fetch_ds_type_input_encrypted_chat (T); + case 0x0ebe4a1e: return fetch_ds_type_bare_input_encrypted_chat (T); + case 0x0b5c064f: return fetch_ds_type_input_encrypted_file (T); + case 0xf4a3f9b0: return fetch_ds_type_bare_input_encrypted_file (T); + case 0x0f60f9ca: return fetch_ds_type_input_file (T); + case 0xf09f0635: return fetch_ds_type_bare_input_file (T); + case 0xe6daa38b: return fetch_ds_type_input_file_location (T); + case 0x19255c74: return fetch_ds_type_bare_input_file_location (T); + case 0x74d456fa: return fetch_ds_type_input_geo_chat (T); + case 0x8b2ba905: return fetch_ds_type_bare_input_geo_chat (T); + case 0x17768f1f: return fetch_ds_type_input_geo_point (T); + case 0xe88970e0: return fetch_ds_type_bare_input_geo_point (T); + case 0xb32c91dd: return fetch_ds_type_input_media (T); + case 0x4cd36e22: return fetch_ds_type_bare_input_media (T); + case 0x02b6911b: return fetch_ds_type_input_notify_peer (T); + case 0xfd496ee4: return fetch_ds_type_bare_input_notify_peer (T); + case 0x9e67268d: return fetch_ds_type_input_peer (T); + case 0x6198d972: return fetch_ds_type_bare_input_peer (T); + case 0x185a48ac: return fetch_ds_type_input_peer_notify_events (T); + case 0xe7a5b753: return fetch_ds_type_bare_input_peer_notify_events (T); + case 0x46a2ce98: return fetch_ds_type_input_peer_notify_settings (T); + case 0xb95d3167: return fetch_ds_type_bare_input_peer_notify_settings (T); + case 0xe74279c9: return fetch_ds_type_input_photo (T); + case 0x18bd8636: return fetch_ds_type_bare_input_photo (T); + case 0x7477e321: return fetch_ds_type_input_photo_crop (T); + case 0x8b881cde: return fetch_ds_type_bare_input_photo_crop (T); + case 0x4f96cb18: return fetch_ds_type_input_privacy_key (T); + case 0xb06934e7: return fetch_ds_type_bare_input_privacy_key (T); + case 0x4b815163: return fetch_ds_type_input_privacy_rule (T); + case 0xb47eae9c: return fetch_ds_type_bare_input_privacy_rule (T); + case 0xe44d415c: return fetch_ds_type_input_sticker_set (T); + case 0x1bb2bea3: return fetch_ds_type_bare_input_sticker_set (T); + case 0xadfe0c6a: return fetch_ds_type_input_user (T); + case 0x5201f395: return fetch_ds_type_bare_input_user (T); + case 0xbb5f7a27: return fetch_ds_type_input_video (T); + case 0x44a085d8: return fetch_ds_type_bare_input_video (T); + case 0xa8509bda: return fetch_ds_type_int (T); + case 0x57af6425: return fetch_ds_type_bare_int (T); + case 0x7d36c439: return fetch_ds_type_int128 (T); + case 0x82c93bc6: return fetch_ds_type_bare_int128 (T); + case 0xf2c798b3: return fetch_ds_type_int256 (T); + case 0x0d38674c: return fetch_ds_type_bare_int256 (T); + case 0xa2fa4880: return fetch_ds_type_keyboard_button (T); + case 0x5d05b77f: return fetch_ds_type_bare_keyboard_button (T); + case 0x77608b83: return fetch_ds_type_keyboard_button_row (T); + case 0x889f747c: return fetch_ds_type_bare_keyboard_button_row (T); + case 0x22076cba: return fetch_ds_type_long (T); + case 0xddf89345: return fetch_ds_type_bare_long (T); + case 0x5d652a7f: return fetch_ds_type_message (T); + case 0xa29ad580: return fetch_ds_type_bare_message (T); + case 0x383415fa: return fetch_ds_type_message_action (T); + case 0xc7cbea05: return fetch_ds_type_bare_message_action (T); + case 0x95f2471a: return fetch_ds_type_message_media (T); + case 0x6a0db8e5: return fetch_ds_type_bare_message_media (T); + case 0x80895ae0: return fetch_ds_type_messages_filter (T); + case 0x7f76a51f: return fetch_ds_type_bare_messages_filter (T); + case 0x8e1a1775: return fetch_ds_type_nearest_dc (T); + case 0x71e5e88a: return fetch_ds_type_bare_nearest_dc (T); + case 0x9fcb8237: return fetch_ds_type_notify_peer (T); + case 0x60347dc8: return fetch_ds_type_bare_notify_peer (T); + case 0x56730bcc: return fetch_ds_type_null (T); + case 0xa98cf433: return fetch_ds_type_bare_null (T); + case 0xbfa3de38: return fetch_ds_type_p_q_inner_data (T); + case 0x405c21c7: return fetch_ds_type_bare_p_q_inner_data (T); + case 0x276159d6: return fetch_ds_type_peer (T); + case 0xd89ea629: return fetch_ds_type_bare_peer (T); + case 0xc0c8d13b: return fetch_ds_type_peer_notify_events (T); + case 0x3f372ec4: return fetch_ds_type_bare_peer_notify_events (T); + case 0xfdf894fc: return fetch_ds_type_peer_notify_settings (T); + case 0x02076b03: return fetch_ds_type_bare_peer_notify_settings (T); + case 0xc207550a: return fetch_ds_type_photo (T); + case 0x3df8aaf5: return fetch_ds_type_bare_photo (T); + case 0x900f60dd: return fetch_ds_type_photo_size (T); + case 0x6ff09f22: return fetch_ds_type_bare_photo_size (T); + case 0xbc2eab30: return fetch_ds_type_privacy_key (T); + case 0x43d154cf: return fetch_ds_type_bare_privacy_key (T); + case 0xa8638aec: return fetch_ds_type_privacy_rule (T); + case 0x579c7513: return fetch_ds_type_bare_privacy_rule (T); + case 0xa384b779: return fetch_ds_type_received_notify_message (T); + case 0x5c7b4886: return fetch_ds_type_bare_received_notify_message (T); + case 0x612ca4a9: return fetch_ds_type_reply_markup (T); + case 0x9ed35b56: return fetch_ds_type_bare_reply_markup (T); + case 0x05162463: return fetch_ds_type_res_p_q (T); + case 0xfae9db9c: return fetch_ds_type_bare_res_p_q (T); + case 0x70541c7e: return fetch_ds_type_send_message_action (T); + case 0x8fabe381: return fetch_ds_type_bare_send_message_action (T); + case 0xa9230301: return fetch_ds_type_server_d_h_params (T); + case 0x56dcfcfe: return fetch_ds_type_bare_server_d_h_params (T); + case 0xb5890dba: return fetch_ds_type_server_d_h_inner_data (T); + case 0x4a76f245: return fetch_ds_type_bare_server_d_h_inner_data (T); + case 0xdb8a468f: return fetch_ds_type_set_client_d_h_params_answer (T); + case 0x2475b970: return fetch_ds_type_bare_set_client_d_h_params_answer (T); + case 0x12b299d4: return fetch_ds_type_sticker_pack (T); + case 0xed4d662b: return fetch_ds_type_bare_sticker_pack (T); + case 0xa7a43b17: return fetch_ds_type_sticker_set (T); + case 0x585bc4e8: return fetch_ds_type_bare_sticker_set (T); + case 0xb5286e24: return fetch_ds_type_string (T); + case 0x4ad791db: return fetch_ds_type_bare_string (T); + case 0x2e02b27e: return fetch_ds_type_update (T); + case 0xd1fd4d81: return fetch_ds_type_bare_update (T); + case 0x22499d27: return fetch_ds_type_updates (T); + case 0xddb662d8: return fetch_ds_type_bare_updates (T); + case 0x02e6c0c8: return fetch_ds_type_user (T); + case 0xfd193f37: return fetch_ds_type_bare_user (T); + case 0x5a89ac5b: return fetch_ds_type_user_full (T); + case 0xa57653a4: return fetch_ds_type_bare_user_full (T); + case 0x9a486229: return fetch_ds_type_user_profile_photo (T); + case 0x65b79dd6: return fetch_ds_type_bare_user_profile_photo (T); + case 0x76de9570: return fetch_ds_type_user_status (T); + case 0x89216a8f: return fetch_ds_type_bare_user_status (T); + case 0x1cb5c415: return fetch_ds_type_vector (T); + case 0xe34a3bea: return fetch_ds_type_bare_vector (T); + case 0x1716b174: return fetch_ds_type_video (T); + case 0xe8e94e8b: return fetch_ds_type_bare_video (T); + case 0xafa14973: return fetch_ds_type_wall_paper (T); + case 0x505eb68c: return fetch_ds_type_bare_wall_paper (T); + case 0x8d8c0d41: return fetch_ds_type_web_page (T); + case 0x7273f2be: return fetch_ds_type_bare_web_page (T); + case 0x1250abde: return fetch_ds_type_account_authorizations (T); + case 0xedaf5421: return fetch_ds_type_bare_account_authorizations (T); + case 0xeac2a804: return fetch_ds_type_account_password (T); + case 0x153d57fb: return fetch_ds_type_bare_account_password (T); + case 0xbcfc532c: return fetch_ds_type_account_password_input_settings (T); + case 0x4303acd3: return fetch_ds_type_bare_account_password_input_settings (T); + case 0xb7b72ab3: return fetch_ds_type_account_password_settings (T); + case 0x4848d54c: return fetch_ds_type_bare_account_password_settings (T); + case 0x554abb6f: return fetch_ds_type_account_privacy_rules (T); + case 0xaab54490: return fetch_ds_type_bare_account_privacy_rules (T); + case 0xa4f58c4c: return fetch_ds_type_account_sent_change_phone_code (T); + case 0x5b0a73b3: return fetch_ds_type_bare_account_sent_change_phone_code (T); + case 0xff036af1: return fetch_ds_type_auth_authorization (T); + case 0x00fc950e: return fetch_ds_type_bare_auth_authorization (T); + case 0x811ea28e: return fetch_ds_type_auth_checked_phone (T); + case 0x7ee15d71: return fetch_ds_type_bare_auth_checked_phone (T); + case 0xdf969c2d: return fetch_ds_type_auth_exported_authorization (T); + case 0x206963d2: return fetch_ds_type_bare_auth_exported_authorization (T); + case 0x137948a5: return fetch_ds_type_auth_password_recovery (T); + case 0xec86b75a: return fetch_ds_type_bare_auth_password_recovery (T); + case 0x0cc8bc16: return fetch_ds_type_auth_sent_code (T); + case 0xf33743e9: return fetch_ds_type_bare_auth_sent_code (T); + case 0x0377168f: return fetch_ds_type_binlog_encr_key (T); + case 0xfc88e970: return fetch_ds_type_bare_binlog_encr_key (T); + case 0x66ff03a6: return fetch_ds_type_binlog_update (T); + case 0x9900fc59: return fetch_ds_type_bare_binlog_update (T); + case 0x8c1b8fb4: return fetch_ds_type_contacts_blocked (T); + case 0x73e4704b: return fetch_ds_type_bare_contacts_blocked (T); + case 0xd8c02560: return fetch_ds_type_contacts_contacts (T); + case 0x273fda9f: return fetch_ds_type_bare_contacts_contacts (T); + case 0x0566000e: return fetch_ds_type_contacts_found (T); + case 0xfa99fff1: return fetch_ds_type_bare_contacts_found (T); + case 0xad524315: return fetch_ds_type_contacts_imported_contacts (T); + case 0x52adbcea: return fetch_ds_type_bare_contacts_imported_contacts (T); + case 0x3ace484c: return fetch_ds_type_contacts_link (T); + case 0xc531b7b3: return fetch_ds_type_bare_contacts_link (T); + case 0x5649dcc5: return fetch_ds_type_contacts_suggested (T); + case 0xa9b6233a: return fetch_ds_type_bare_contacts_suggested (T); + case 0x48feb267: return fetch_ds_type_geochats_located (T); + case 0xb7014d98: return fetch_ds_type_bare_geochats_located (T); + case 0x6d0a0e59: return fetch_ds_type_geochats_messages (T); + case 0x92f5f1a6: return fetch_ds_type_bare_geochats_messages (T); + case 0x17b1578b: return fetch_ds_type_geochats_stated_message (T); + case 0xe84ea874: return fetch_ds_type_bare_geochats_stated_message (T); + case 0x4ddd9627: return fetch_ds_type_help_app_update (T); + case 0xb22269d8: return fetch_ds_type_bare_help_app_update (T); + case 0x18cb9f78: return fetch_ds_type_help_invite_text (T); + case 0xe7346087: return fetch_ds_type_bare_help_invite_text (T); + case 0x17c6b5f6: return fetch_ds_type_help_support (T); + case 0xe8394a09: return fetch_ds_type_bare_help_support (T); + case 0xb45c69d1: return fetch_ds_type_messages_affected_history (T); + case 0x4ba3962e: return fetch_ds_type_bare_messages_affected_history (T); + case 0x84d19185: return fetch_ds_type_messages_affected_messages (T); + case 0x7b2e6e7a: return fetch_ds_type_bare_messages_affected_messages (T); + case 0xb485502f: return fetch_ds_type_messages_all_stickers (T); + case 0x4b7aafd0: return fetch_ds_type_bare_messages_all_stickers (T); + case 0xe5d7d19c: return fetch_ds_type_messages_chat_full (T); + case 0x1a282e63: return fetch_ds_type_bare_messages_chat_full (T); + case 0x64ff9fd5: return fetch_ds_type_messages_chats (T); + case 0x9b00602a: return fetch_ds_type_bare_messages_chats (T); + case 0xecc058e8: return fetch_ds_type_messages_dh_config (T); + case 0x133fa717: return fetch_ds_type_bare_messages_dh_config (T); + case 0x645af8b3: return fetch_ds_type_messages_dialogs (T); + case 0x9ba5074c: return fetch_ds_type_bare_messages_dialogs (T); + case 0x3f4e0648: return fetch_ds_type_messages_message (T); + case 0xc0b1f9b7: return fetch_ds_type_bare_messages_message (T); + case 0x8735e464: return fetch_ds_type_messages_messages (T); + case 0x78ca1b9b: return fetch_ds_type_bare_messages_messages (T); + case 0xc29c7607: return fetch_ds_type_messages_sent_encrypted_message (T); + case 0x3d6389f8: return fetch_ds_type_bare_messages_sent_encrypted_message (T); + case 0x799ce190: return fetch_ds_type_messages_sent_message (T); + case 0x86631e6f: return fetch_ds_type_bare_messages_sent_message (T); + case 0xb60a24a6: return fetch_ds_type_messages_sticker_set (T); + case 0x49f5db59: return fetch_ds_type_bare_messages_sticker_set (T); + case 0x7bfa5710: return fetch_ds_type_messages_stickers (T); + case 0x8405a8ef: return fetch_ds_type_bare_messages_stickers (T); + case 0x20212ca8: return fetch_ds_type_photos_photo (T); + case 0xdfded357: return fetch_ds_type_bare_photos_photo (T); + case 0x98cf75f1: return fetch_ds_type_photos_photos (T); + case 0x67308a0e: return fetch_ds_type_bare_photos_photos (T); + case 0x3e2838a8: return fetch_ds_type_storage_file_type (T); + case 0xc1d7c757: return fetch_ds_type_bare_storage_file_type (T); + case 0xf57a2419: return fetch_ds_type_updates_difference (T); + case 0x0a85dbe6: return fetch_ds_type_bare_updates_difference (T); + case 0xa56c2a3e: return fetch_ds_type_updates_state (T); + case 0x5a93d5c1: return fetch_ds_type_bare_updates_state (T); + case 0x096a18d5: return fetch_ds_type_upload_file (T); + case 0xf695e72a: return fetch_ds_type_bare_upload_file (T); + default: return NULL; } +} diff --git a/libs/tgl/src/auto/auto-fetch-ds.h b/libs/tgl/src/auto/auto-fetch-ds.h new file mode 100644 index 0000000000..6c39473b14 --- /dev/null +++ b/libs/tgl/src/auto/auto-fetch-ds.h @@ -0,0 +1,716 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +#include +#include +struct tgl_state; +struct tl_ds_account_days_t_t_l *fetch_ds_constructor_account_days_t_t_l (struct paramed_type *T); +struct tl_ds_audio *fetch_ds_constructor_audio_empty (struct paramed_type *T); +struct tl_ds_audio *fetch_ds_constructor_audio (struct paramed_type *T); +struct tl_ds_authorization *fetch_ds_constructor_authorization (struct paramed_type *T); +struct tl_ds_bool *fetch_ds_constructor_bool_false (struct paramed_type *T); +struct tl_ds_bool *fetch_ds_constructor_bool_true (struct paramed_type *T); +struct tl_ds_bot_command *fetch_ds_constructor_bot_command (struct paramed_type *T); +struct tl_ds_bot_command *fetch_ds_constructor_bot_command_old (struct paramed_type *T); +struct tl_ds_bot_info *fetch_ds_constructor_bot_info_empty (struct paramed_type *T); +struct tl_ds_bot_info *fetch_ds_constructor_bot_info (struct paramed_type *T); +struct tl_ds_string *fetch_ds_constructor_bytes (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_constructor_chat_empty (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_constructor_chat (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_constructor_chat_forbidden (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_constructor_geo_chat (struct paramed_type *T); +struct tl_ds_chat_full *fetch_ds_constructor_chat_full (struct paramed_type *T); +struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite_already (struct paramed_type *T); +struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite (struct paramed_type *T); +struct tl_ds_chat_located *fetch_ds_constructor_chat_located (struct paramed_type *T); +struct tl_ds_chat_participant *fetch_ds_constructor_chat_participant (struct paramed_type *T); +struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants_forbidden (struct paramed_type *T); +struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants (struct paramed_type *T); +struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo_empty (struct paramed_type *T); +struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo (struct paramed_type *T); +struct tl_ds_client_d_h_inner_data *fetch_ds_constructor_client_d_h_inner_data (struct paramed_type *T); +struct tl_ds_config *fetch_ds_constructor_config (struct paramed_type *T); +struct tl_ds_contact *fetch_ds_constructor_contact (struct paramed_type *T); +struct tl_ds_contact_blocked *fetch_ds_constructor_contact_blocked (struct paramed_type *T); +struct tl_ds_contact_found *fetch_ds_constructor_contact_found (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_unknown (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_none (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_has_phone (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_constructor_contact_link_contact (struct paramed_type *T); +struct tl_ds_contact_status *fetch_ds_constructor_contact_status (struct paramed_type *T); +struct tl_ds_contact_suggested *fetch_ds_constructor_contact_suggested (struct paramed_type *T); +struct tl_ds_dc_option *fetch_ds_constructor_dc_option_l28 (struct paramed_type *T); +struct tl_ds_dc_option *fetch_ds_constructor_dc_option (struct paramed_type *T); +struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message (struct paramed_type *T); +struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message_service (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_read_messages (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_delete_messages (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_flush_history (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_resend (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_notify_layer (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_typing (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_request_key (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_accept_key (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_abort_key (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_commit_key (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_noop (struct paramed_type *T); +struct tl_ds_decrypted_message_layer *fetch_ds_constructor_decrypted_message_layer (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_empty (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_photo (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_geo_point (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_contact (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_document (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_external_document (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video_l12 (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T); +struct tl_ds_dialog *fetch_ds_constructor_dialog (struct paramed_type *T); +struct tl_ds_disabled_feature *fetch_ds_constructor_disabled_feature (struct paramed_type *T); +struct tl_ds_document *fetch_ds_constructor_document_empty (struct paramed_type *T); +struct tl_ds_document *fetch_ds_constructor_document (struct paramed_type *T); +struct tl_ds_document *fetch_ds_constructor_document_l19 (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_image_size (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_animated (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker_l28 (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_video (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_audio (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_filename (struct paramed_type *T); +double *fetch_ds_constructor_double (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_empty (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_waiting (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_requested (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_discarded (struct paramed_type *T); +struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file_empty (struct paramed_type *T); +struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file (struct paramed_type *T); +struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message (struct paramed_type *T); +struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message_service (struct paramed_type *T); +struct tl_ds_error *fetch_ds_constructor_error (struct paramed_type *T); +struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_empty (struct paramed_type *T); +struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_exported (struct paramed_type *T); +struct tl_ds_file_location *fetch_ds_constructor_file_location_unavailable (struct paramed_type *T); +struct tl_ds_file_location *fetch_ds_constructor_file_location (struct paramed_type *T); +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_empty (struct paramed_type *T); +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message (struct paramed_type *T); +struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_service (struct paramed_type *T); +struct tl_ds_geo_point *fetch_ds_constructor_geo_point_empty (struct paramed_type *T); +struct tl_ds_geo_point *fetch_ds_constructor_geo_point (struct paramed_type *T); +struct tl_ds_imported_contact *fetch_ds_constructor_imported_contact (struct paramed_type *T); +struct tl_ds_input_app_event *fetch_ds_constructor_input_app_event (struct paramed_type *T); +struct tl_ds_input_audio *fetch_ds_constructor_input_audio_empty (struct paramed_type *T); +struct tl_ds_input_audio *fetch_ds_constructor_input_audio (struct paramed_type *T); +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo_empty (struct paramed_type *T); +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_uploaded_photo (struct paramed_type *T); +struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo (struct paramed_type *T); +struct tl_ds_input_contact *fetch_ds_constructor_input_phone_contact (struct paramed_type *T); +struct tl_ds_input_document *fetch_ds_constructor_input_document_empty (struct paramed_type *T); +struct tl_ds_input_document *fetch_ds_constructor_input_document (struct paramed_type *T); +struct tl_ds_input_encrypted_chat *fetch_ds_constructor_input_encrypted_chat (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_empty (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_uploaded (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T); +struct tl_ds_input_file *fetch_ds_constructor_input_file (struct paramed_type *T); +struct tl_ds_input_file *fetch_ds_constructor_input_file_big (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_constructor_input_file_location (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_constructor_input_video_file_location (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_constructor_input_encrypted_file_location (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_constructor_input_audio_file_location (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_constructor_input_document_file_location (struct paramed_type *T); +struct tl_ds_input_geo_chat *fetch_ds_constructor_input_geo_chat (struct paramed_type *T); +struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point_empty (struct paramed_type *T); +struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_empty (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_photo (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_photo (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_geo_point (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_contact (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_video (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_video (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_video (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_audio (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_audio (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_document (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_document (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_document (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_constructor_input_media_venue (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_peer (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_users (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_chats (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_all (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_geo_chat_peer (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_empty (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_self (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_contact (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_foreign (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_constructor_input_peer_chat (struct paramed_type *T); +struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_empty (struct paramed_type *T); +struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_all (struct paramed_type *T); +struct tl_ds_input_peer_notify_settings *fetch_ds_constructor_input_peer_notify_settings (struct paramed_type *T); +struct tl_ds_input_photo *fetch_ds_constructor_input_photo_empty (struct paramed_type *T); +struct tl_ds_input_photo *fetch_ds_constructor_input_photo (struct paramed_type *T); +struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop_auto (struct paramed_type *T); +struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop (struct paramed_type *T); +struct tl_ds_input_privacy_key *fetch_ds_constructor_input_privacy_key_status_timestamp (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_contacts (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_all (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_users (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_all (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_users (struct paramed_type *T); +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_empty (struct paramed_type *T); +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_i_d (struct paramed_type *T); +struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_short_name (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_constructor_input_user_empty (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_constructor_input_user_self (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_constructor_input_user_contact (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_constructor_input_user_foreign (struct paramed_type *T); +struct tl_ds_input_video *fetch_ds_constructor_input_video_empty (struct paramed_type *T); +struct tl_ds_input_video *fetch_ds_constructor_input_video (struct paramed_type *T); +int *fetch_ds_constructor_int (struct paramed_type *T); +struct tl_ds_int128 *fetch_ds_constructor_int128 (struct paramed_type *T); +struct tl_ds_int256 *fetch_ds_constructor_int256 (struct paramed_type *T); +struct tl_ds_keyboard_button *fetch_ds_constructor_keyboard_button (struct paramed_type *T); +struct tl_ds_keyboard_button_row *fetch_ds_constructor_keyboard_button_row (struct paramed_type *T); +long long *fetch_ds_constructor_long (struct paramed_type *T); +struct tl_ds_message *fetch_ds_constructor_message_empty (struct paramed_type *T); +struct tl_ds_message *fetch_ds_constructor_message (struct paramed_type *T); +struct tl_ds_message *fetch_ds_constructor_message_service (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_empty (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_create (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_title (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_photo (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_photo (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_add_user (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_user (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_create (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_checkin (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_joined_by_link (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_empty (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_photo (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_video (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_geo (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_contact (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_unsupported (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_document (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_audio (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_web_page (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_venue (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_photo_l27 (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_constructor_message_media_video_l27 (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_empty (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photos (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_video (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_document (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_audio (struct paramed_type *T); +struct tl_ds_nearest_dc *fetch_ds_constructor_nearest_dc (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_constructor_notify_peer (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_constructor_notify_users (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_constructor_notify_chats (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_constructor_notify_all (struct paramed_type *T); +struct tl_ds_null *fetch_ds_constructor_null (struct paramed_type *T); +struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data (struct paramed_type *T); +struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data_temp (struct paramed_type *T); +struct tl_ds_peer *fetch_ds_constructor_peer_user (struct paramed_type *T); +struct tl_ds_peer *fetch_ds_constructor_peer_chat (struct paramed_type *T); +struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_empty (struct paramed_type *T); +struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_all (struct paramed_type *T); +struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings_empty (struct paramed_type *T); +struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings (struct paramed_type *T); +struct tl_ds_photo *fetch_ds_constructor_photo_empty (struct paramed_type *T); +struct tl_ds_photo *fetch_ds_constructor_photo (struct paramed_type *T); +struct tl_ds_photo *fetch_ds_constructor_photo_l27 (struct paramed_type *T); +struct tl_ds_photo_size *fetch_ds_constructor_photo_size_empty (struct paramed_type *T); +struct tl_ds_photo_size *fetch_ds_constructor_photo_size (struct paramed_type *T); +struct tl_ds_photo_size *fetch_ds_constructor_photo_cached_size (struct paramed_type *T); +struct tl_ds_privacy_key *fetch_ds_constructor_privacy_key_status_timestamp (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_contacts (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_all (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_users (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_contacts (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_all (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_users (struct paramed_type *T); +struct tl_ds_received_notify_message *fetch_ds_constructor_received_notify_message (struct paramed_type *T); +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_hide (struct paramed_type *T); +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_force_reply (struct paramed_type *T); +struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_markup (struct paramed_type *T); +struct tl_ds_res_p_q *fetch_ds_constructor_res_p_q (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_typing_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_cancel_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_video_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action_l27 (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_audio_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_photo_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action_l27 (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_geo_location_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_constructor_send_message_choose_contact_action (struct paramed_type *T); +struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_fail (struct paramed_type *T); +struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_ok (struct paramed_type *T); +struct tl_ds_server_d_h_inner_data *fetch_ds_constructor_server_d_h_inner_data (struct paramed_type *T); +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_ok (struct paramed_type *T); +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_retry (struct paramed_type *T); +struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_fail (struct paramed_type *T); +struct tl_ds_sticker_pack *fetch_ds_constructor_sticker_pack (struct paramed_type *T); +struct tl_ds_sticker_set *fetch_ds_constructor_sticker_set (struct paramed_type *T); +struct tl_ds_string *fetch_ds_constructor_string (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_new_message (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_message_i_d (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_delete_messages (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_typing (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_chat_user_typing (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_chat_participants (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_status (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_name (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_photo (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_contact_registered (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_contact_link (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_new_authorization (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_new_geo_chat_message (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_new_encrypted_message (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_encrypted_chat_typing (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_encryption (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_encrypted_messages_read (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_chat_participant_add (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_chat_participant_delete (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_dc_options (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_blocked (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_notify_settings (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_service_notification (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_privacy (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_user_phone (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_read_history_inbox (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_read_history_outbox (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_web_page (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_read_messages_contents (struct paramed_type *T); +struct tl_ds_update *fetch_ds_constructor_update_msg_update (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_updates_too_long (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_update_short_message (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_update_short_chat_message (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_update_short (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_updates_combined (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_constructor_updates (struct paramed_type *T); +struct tl_ds_user *fetch_ds_constructor_user_empty (struct paramed_type *T); +struct tl_ds_user *fetch_ds_constructor_user (struct paramed_type *T); +struct tl_ds_user_full *fetch_ds_constructor_user_full (struct paramed_type *T); +struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo_empty (struct paramed_type *T); +struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_empty (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_online (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_offline (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_recently (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_last_week (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_constructor_user_status_last_month (struct paramed_type *T); +struct tl_ds_vector *fetch_ds_constructor_vector (struct paramed_type *T); +struct tl_ds_video *fetch_ds_constructor_video_empty (struct paramed_type *T); +struct tl_ds_video *fetch_ds_constructor_video (struct paramed_type *T); +struct tl_ds_video *fetch_ds_constructor_video_l27 (struct paramed_type *T); +struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper (struct paramed_type *T); +struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper_solid (struct paramed_type *T); +struct tl_ds_web_page *fetch_ds_constructor_web_page_empty (struct paramed_type *T); +struct tl_ds_web_page *fetch_ds_constructor_web_page_pending (struct paramed_type *T); +struct tl_ds_web_page *fetch_ds_constructor_web_page (struct paramed_type *T); +struct tl_ds_account_authorizations *fetch_ds_constructor_account_authorizations (struct paramed_type *T); +struct tl_ds_account_password *fetch_ds_constructor_account_no_password (struct paramed_type *T); +struct tl_ds_account_password *fetch_ds_constructor_account_password (struct paramed_type *T); +struct tl_ds_account_password_input_settings *fetch_ds_constructor_account_password_input_settings (struct paramed_type *T); +struct tl_ds_account_password_settings *fetch_ds_constructor_account_password_settings (struct paramed_type *T); +struct tl_ds_account_privacy_rules *fetch_ds_constructor_account_privacy_rules (struct paramed_type *T); +struct tl_ds_account_sent_change_phone_code *fetch_ds_constructor_account_sent_change_phone_code (struct paramed_type *T); +struct tl_ds_auth_authorization *fetch_ds_constructor_auth_authorization (struct paramed_type *T); +struct tl_ds_auth_checked_phone *fetch_ds_constructor_auth_checked_phone (struct paramed_type *T); +struct tl_ds_auth_exported_authorization *fetch_ds_constructor_auth_exported_authorization (struct paramed_type *T); +struct tl_ds_auth_password_recovery *fetch_ds_constructor_auth_password_recovery (struct paramed_type *T); +struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_code (struct paramed_type *T); +struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_app_code (struct paramed_type *T); +struct tl_ds_binlog_encr_key *fetch_ds_constructor_binlog_encr_key (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_start (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_auth_key (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_default_dc (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_signed (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_our_id (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_dh_params (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_pts (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_qts (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_date (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_seq (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_delete (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_delete (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_add_participant (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_del_participant (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_msg_id (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_delete (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_encr_new (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_msg_update (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_constructor_binlog_reset_authorization (struct paramed_type *T); +struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked (struct paramed_type *T); +struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked_slice (struct paramed_type *T); +struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts_not_modified (struct paramed_type *T); +struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts (struct paramed_type *T); +struct tl_ds_contacts_found *fetch_ds_constructor_contacts_found (struct paramed_type *T); +struct tl_ds_contacts_imported_contacts *fetch_ds_constructor_contacts_imported_contacts (struct paramed_type *T); +struct tl_ds_contacts_link *fetch_ds_constructor_contacts_link (struct paramed_type *T); +struct tl_ds_contacts_suggested *fetch_ds_constructor_contacts_suggested (struct paramed_type *T); +struct tl_ds_geochats_located *fetch_ds_constructor_geochats_located (struct paramed_type *T); +struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages (struct paramed_type *T); +struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages_slice (struct paramed_type *T); +struct tl_ds_geochats_stated_message *fetch_ds_constructor_geochats_stated_message (struct paramed_type *T); +struct tl_ds_help_app_update *fetch_ds_constructor_help_app_update (struct paramed_type *T); +struct tl_ds_help_app_update *fetch_ds_constructor_help_no_app_update (struct paramed_type *T); +struct tl_ds_help_invite_text *fetch_ds_constructor_help_invite_text (struct paramed_type *T); +struct tl_ds_help_support *fetch_ds_constructor_help_support (struct paramed_type *T); +struct tl_ds_messages_affected_history *fetch_ds_constructor_messages_affected_history (struct paramed_type *T); +struct tl_ds_messages_affected_messages *fetch_ds_constructor_messages_affected_messages (struct paramed_type *T); +struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers_not_modified (struct paramed_type *T); +struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers (struct paramed_type *T); +struct tl_ds_messages_chat_full *fetch_ds_constructor_messages_chat_full (struct paramed_type *T); +struct tl_ds_messages_chats *fetch_ds_constructor_messages_chats (struct paramed_type *T); +struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config_not_modified (struct paramed_type *T); +struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config (struct paramed_type *T); +struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs (struct paramed_type *T); +struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs_slice (struct paramed_type *T); +struct tl_ds_messages_message *fetch_ds_constructor_messages_message_empty (struct paramed_type *T); +struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages (struct paramed_type *T); +struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages_slice (struct paramed_type *T); +struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_message (struct paramed_type *T); +struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_file (struct paramed_type *T); +struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message (struct paramed_type *T); +struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message_link (struct paramed_type *T); +struct tl_ds_messages_sticker_set *fetch_ds_constructor_messages_sticker_set (struct paramed_type *T); +struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers_not_modified (struct paramed_type *T); +struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers (struct paramed_type *T); +struct tl_ds_photos_photo *fetch_ds_constructor_photos_photo (struct paramed_type *T); +struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos (struct paramed_type *T); +struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos_slice (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_unknown (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_jpeg (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_gif (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_png (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_pdf (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp3 (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mov (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_partial (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp4 (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_webp (struct paramed_type *T); +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_empty (struct paramed_type *T); +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference (struct paramed_type *T); +struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_slice (struct paramed_type *T); +struct tl_ds_updates_state *fetch_ds_constructor_updates_state (struct paramed_type *T); +struct tl_ds_upload_file *fetch_ds_constructor_upload_file (struct paramed_type *T); +struct tl_ds_account_days_t_t_l *fetch_ds_type_account_days_t_t_l (struct paramed_type *T); +struct tl_ds_account_days_t_t_l *fetch_ds_type_bare_account_days_t_t_l (struct paramed_type *T); +struct tl_ds_audio *fetch_ds_type_audio (struct paramed_type *T); +struct tl_ds_audio *fetch_ds_type_bare_audio (struct paramed_type *T); +struct tl_ds_authorization *fetch_ds_type_authorization (struct paramed_type *T); +struct tl_ds_authorization *fetch_ds_type_bare_authorization (struct paramed_type *T); +struct tl_ds_bool *fetch_ds_type_bool (struct paramed_type *T); +struct tl_ds_bool *fetch_ds_type_bare_bool (struct paramed_type *T); +struct tl_ds_bot_command *fetch_ds_type_bot_command (struct paramed_type *T); +struct tl_ds_bot_command *fetch_ds_type_bare_bot_command (struct paramed_type *T); +struct tl_ds_bot_info *fetch_ds_type_bot_info (struct paramed_type *T); +struct tl_ds_bot_info *fetch_ds_type_bare_bot_info (struct paramed_type *T); +struct tl_ds_string *fetch_ds_type_bytes (struct paramed_type *T); +struct tl_ds_string *fetch_ds_type_bare_bytes (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_type_chat (struct paramed_type *T); +struct tl_ds_chat *fetch_ds_type_bare_chat (struct paramed_type *T); +struct tl_ds_chat_full *fetch_ds_type_chat_full (struct paramed_type *T); +struct tl_ds_chat_full *fetch_ds_type_bare_chat_full (struct paramed_type *T); +struct tl_ds_chat_invite *fetch_ds_type_chat_invite (struct paramed_type *T); +struct tl_ds_chat_invite *fetch_ds_type_bare_chat_invite (struct paramed_type *T); +struct tl_ds_chat_located *fetch_ds_type_chat_located (struct paramed_type *T); +struct tl_ds_chat_located *fetch_ds_type_bare_chat_located (struct paramed_type *T); +struct tl_ds_chat_participant *fetch_ds_type_chat_participant (struct paramed_type *T); +struct tl_ds_chat_participant *fetch_ds_type_bare_chat_participant (struct paramed_type *T); +struct tl_ds_chat_participants *fetch_ds_type_chat_participants (struct paramed_type *T); +struct tl_ds_chat_participants *fetch_ds_type_bare_chat_participants (struct paramed_type *T); +struct tl_ds_chat_photo *fetch_ds_type_chat_photo (struct paramed_type *T); +struct tl_ds_chat_photo *fetch_ds_type_bare_chat_photo (struct paramed_type *T); +struct tl_ds_client_d_h_inner_data *fetch_ds_type_client_d_h_inner_data (struct paramed_type *T); +struct tl_ds_client_d_h_inner_data *fetch_ds_type_bare_client_d_h_inner_data (struct paramed_type *T); +struct tl_ds_config *fetch_ds_type_config (struct paramed_type *T); +struct tl_ds_config *fetch_ds_type_bare_config (struct paramed_type *T); +struct tl_ds_contact *fetch_ds_type_contact (struct paramed_type *T); +struct tl_ds_contact *fetch_ds_type_bare_contact (struct paramed_type *T); +struct tl_ds_contact_blocked *fetch_ds_type_contact_blocked (struct paramed_type *T); +struct tl_ds_contact_blocked *fetch_ds_type_bare_contact_blocked (struct paramed_type *T); +struct tl_ds_contact_found *fetch_ds_type_contact_found (struct paramed_type *T); +struct tl_ds_contact_found *fetch_ds_type_bare_contact_found (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_type_contact_link (struct paramed_type *T); +struct tl_ds_contact_link *fetch_ds_type_bare_contact_link (struct paramed_type *T); +struct tl_ds_contact_status *fetch_ds_type_contact_status (struct paramed_type *T); +struct tl_ds_contact_status *fetch_ds_type_bare_contact_status (struct paramed_type *T); +struct tl_ds_contact_suggested *fetch_ds_type_contact_suggested (struct paramed_type *T); +struct tl_ds_contact_suggested *fetch_ds_type_bare_contact_suggested (struct paramed_type *T); +struct tl_ds_dc_option *fetch_ds_type_dc_option (struct paramed_type *T); +struct tl_ds_dc_option *fetch_ds_type_bare_dc_option (struct paramed_type *T); +struct tl_ds_decrypted_message *fetch_ds_type_decrypted_message (struct paramed_type *T); +struct tl_ds_decrypted_message *fetch_ds_type_bare_decrypted_message (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_type_decrypted_message_action (struct paramed_type *T); +struct tl_ds_decrypted_message_action *fetch_ds_type_bare_decrypted_message_action (struct paramed_type *T); +struct tl_ds_decrypted_message_layer *fetch_ds_type_decrypted_message_layer (struct paramed_type *T); +struct tl_ds_decrypted_message_layer *fetch_ds_type_bare_decrypted_message_layer (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_type_decrypted_message_media (struct paramed_type *T); +struct tl_ds_decrypted_message_media *fetch_ds_type_bare_decrypted_message_media (struct paramed_type *T); +struct tl_ds_dialog *fetch_ds_type_dialog (struct paramed_type *T); +struct tl_ds_dialog *fetch_ds_type_bare_dialog (struct paramed_type *T); +struct tl_ds_disabled_feature *fetch_ds_type_disabled_feature (struct paramed_type *T); +struct tl_ds_disabled_feature *fetch_ds_type_bare_disabled_feature (struct paramed_type *T); +struct tl_ds_document *fetch_ds_type_document (struct paramed_type *T); +struct tl_ds_document *fetch_ds_type_bare_document (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_type_document_attribute (struct paramed_type *T); +struct tl_ds_document_attribute *fetch_ds_type_bare_document_attribute (struct paramed_type *T); +double *fetch_ds_type_double (struct paramed_type *T); +double *fetch_ds_type_bare_double (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_type_encrypted_chat (struct paramed_type *T); +struct tl_ds_encrypted_chat *fetch_ds_type_bare_encrypted_chat (struct paramed_type *T); +struct tl_ds_encrypted_file *fetch_ds_type_encrypted_file (struct paramed_type *T); +struct tl_ds_encrypted_file *fetch_ds_type_bare_encrypted_file (struct paramed_type *T); +struct tl_ds_encrypted_message *fetch_ds_type_encrypted_message (struct paramed_type *T); +struct tl_ds_encrypted_message *fetch_ds_type_bare_encrypted_message (struct paramed_type *T); +struct tl_ds_error *fetch_ds_type_error (struct paramed_type *T); +struct tl_ds_error *fetch_ds_type_bare_error (struct paramed_type *T); +struct tl_ds_exported_chat_invite *fetch_ds_type_exported_chat_invite (struct paramed_type *T); +struct tl_ds_exported_chat_invite *fetch_ds_type_bare_exported_chat_invite (struct paramed_type *T); +struct tl_ds_file_location *fetch_ds_type_file_location (struct paramed_type *T); +struct tl_ds_file_location *fetch_ds_type_bare_file_location (struct paramed_type *T); +struct tl_ds_geo_chat_message *fetch_ds_type_geo_chat_message (struct paramed_type *T); +struct tl_ds_geo_chat_message *fetch_ds_type_bare_geo_chat_message (struct paramed_type *T); +struct tl_ds_geo_point *fetch_ds_type_geo_point (struct paramed_type *T); +struct tl_ds_geo_point *fetch_ds_type_bare_geo_point (struct paramed_type *T); +struct tl_ds_imported_contact *fetch_ds_type_imported_contact (struct paramed_type *T); +struct tl_ds_imported_contact *fetch_ds_type_bare_imported_contact (struct paramed_type *T); +struct tl_ds_input_app_event *fetch_ds_type_input_app_event (struct paramed_type *T); +struct tl_ds_input_app_event *fetch_ds_type_bare_input_app_event (struct paramed_type *T); +struct tl_ds_input_audio *fetch_ds_type_input_audio (struct paramed_type *T); +struct tl_ds_input_audio *fetch_ds_type_bare_input_audio (struct paramed_type *T); +struct tl_ds_input_chat_photo *fetch_ds_type_input_chat_photo (struct paramed_type *T); +struct tl_ds_input_chat_photo *fetch_ds_type_bare_input_chat_photo (struct paramed_type *T); +struct tl_ds_input_contact *fetch_ds_type_input_contact (struct paramed_type *T); +struct tl_ds_input_contact *fetch_ds_type_bare_input_contact (struct paramed_type *T); +struct tl_ds_input_document *fetch_ds_type_input_document (struct paramed_type *T); +struct tl_ds_input_document *fetch_ds_type_bare_input_document (struct paramed_type *T); +struct tl_ds_input_encrypted_chat *fetch_ds_type_input_encrypted_chat (struct paramed_type *T); +struct tl_ds_input_encrypted_chat *fetch_ds_type_bare_input_encrypted_chat (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_type_input_encrypted_file (struct paramed_type *T); +struct tl_ds_input_encrypted_file *fetch_ds_type_bare_input_encrypted_file (struct paramed_type *T); +struct tl_ds_input_file *fetch_ds_type_input_file (struct paramed_type *T); +struct tl_ds_input_file *fetch_ds_type_bare_input_file (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_type_input_file_location (struct paramed_type *T); +struct tl_ds_input_file_location *fetch_ds_type_bare_input_file_location (struct paramed_type *T); +struct tl_ds_input_geo_chat *fetch_ds_type_input_geo_chat (struct paramed_type *T); +struct tl_ds_input_geo_chat *fetch_ds_type_bare_input_geo_chat (struct paramed_type *T); +struct tl_ds_input_geo_point *fetch_ds_type_input_geo_point (struct paramed_type *T); +struct tl_ds_input_geo_point *fetch_ds_type_bare_input_geo_point (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_type_input_media (struct paramed_type *T); +struct tl_ds_input_media *fetch_ds_type_bare_input_media (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_type_input_notify_peer (struct paramed_type *T); +struct tl_ds_input_notify_peer *fetch_ds_type_bare_input_notify_peer (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_type_input_peer (struct paramed_type *T); +struct tl_ds_input_peer *fetch_ds_type_bare_input_peer (struct paramed_type *T); +struct tl_ds_input_peer_notify_events *fetch_ds_type_input_peer_notify_events (struct paramed_type *T); +struct tl_ds_input_peer_notify_events *fetch_ds_type_bare_input_peer_notify_events (struct paramed_type *T); +struct tl_ds_input_peer_notify_settings *fetch_ds_type_input_peer_notify_settings (struct paramed_type *T); +struct tl_ds_input_peer_notify_settings *fetch_ds_type_bare_input_peer_notify_settings (struct paramed_type *T); +struct tl_ds_input_photo *fetch_ds_type_input_photo (struct paramed_type *T); +struct tl_ds_input_photo *fetch_ds_type_bare_input_photo (struct paramed_type *T); +struct tl_ds_input_photo_crop *fetch_ds_type_input_photo_crop (struct paramed_type *T); +struct tl_ds_input_photo_crop *fetch_ds_type_bare_input_photo_crop (struct paramed_type *T); +struct tl_ds_input_privacy_key *fetch_ds_type_input_privacy_key (struct paramed_type *T); +struct tl_ds_input_privacy_key *fetch_ds_type_bare_input_privacy_key (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_type_input_privacy_rule (struct paramed_type *T); +struct tl_ds_input_privacy_rule *fetch_ds_type_bare_input_privacy_rule (struct paramed_type *T); +struct tl_ds_input_sticker_set *fetch_ds_type_input_sticker_set (struct paramed_type *T); +struct tl_ds_input_sticker_set *fetch_ds_type_bare_input_sticker_set (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_type_input_user (struct paramed_type *T); +struct tl_ds_input_user *fetch_ds_type_bare_input_user (struct paramed_type *T); +struct tl_ds_input_video *fetch_ds_type_input_video (struct paramed_type *T); +struct tl_ds_input_video *fetch_ds_type_bare_input_video (struct paramed_type *T); +int *fetch_ds_type_int (struct paramed_type *T); +int *fetch_ds_type_bare_int (struct paramed_type *T); +struct tl_ds_int128 *fetch_ds_type_int128 (struct paramed_type *T); +struct tl_ds_int128 *fetch_ds_type_bare_int128 (struct paramed_type *T); +struct tl_ds_int256 *fetch_ds_type_int256 (struct paramed_type *T); +struct tl_ds_int256 *fetch_ds_type_bare_int256 (struct paramed_type *T); +struct tl_ds_keyboard_button *fetch_ds_type_keyboard_button (struct paramed_type *T); +struct tl_ds_keyboard_button *fetch_ds_type_bare_keyboard_button (struct paramed_type *T); +struct tl_ds_keyboard_button_row *fetch_ds_type_keyboard_button_row (struct paramed_type *T); +struct tl_ds_keyboard_button_row *fetch_ds_type_bare_keyboard_button_row (struct paramed_type *T); +long long *fetch_ds_type_long (struct paramed_type *T); +long long *fetch_ds_type_bare_long (struct paramed_type *T); +struct tl_ds_message *fetch_ds_type_message (struct paramed_type *T); +struct tl_ds_message *fetch_ds_type_bare_message (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_type_message_action (struct paramed_type *T); +struct tl_ds_message_action *fetch_ds_type_bare_message_action (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_type_message_media (struct paramed_type *T); +struct tl_ds_message_media *fetch_ds_type_bare_message_media (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_type_messages_filter (struct paramed_type *T); +struct tl_ds_messages_filter *fetch_ds_type_bare_messages_filter (struct paramed_type *T); +struct tl_ds_nearest_dc *fetch_ds_type_nearest_dc (struct paramed_type *T); +struct tl_ds_nearest_dc *fetch_ds_type_bare_nearest_dc (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_type_notify_peer (struct paramed_type *T); +struct tl_ds_notify_peer *fetch_ds_type_bare_notify_peer (struct paramed_type *T); +struct tl_ds_null *fetch_ds_type_null (struct paramed_type *T); +struct tl_ds_null *fetch_ds_type_bare_null (struct paramed_type *T); +struct tl_ds_p_q_inner_data *fetch_ds_type_p_q_inner_data (struct paramed_type *T); +struct tl_ds_p_q_inner_data *fetch_ds_type_bare_p_q_inner_data (struct paramed_type *T); +struct tl_ds_peer *fetch_ds_type_peer (struct paramed_type *T); +struct tl_ds_peer *fetch_ds_type_bare_peer (struct paramed_type *T); +struct tl_ds_peer_notify_events *fetch_ds_type_peer_notify_events (struct paramed_type *T); +struct tl_ds_peer_notify_events *fetch_ds_type_bare_peer_notify_events (struct paramed_type *T); +struct tl_ds_peer_notify_settings *fetch_ds_type_peer_notify_settings (struct paramed_type *T); +struct tl_ds_peer_notify_settings *fetch_ds_type_bare_peer_notify_settings (struct paramed_type *T); +struct tl_ds_photo *fetch_ds_type_photo (struct paramed_type *T); +struct tl_ds_photo *fetch_ds_type_bare_photo (struct paramed_type *T); +struct tl_ds_photo_size *fetch_ds_type_photo_size (struct paramed_type *T); +struct tl_ds_photo_size *fetch_ds_type_bare_photo_size (struct paramed_type *T); +struct tl_ds_privacy_key *fetch_ds_type_privacy_key (struct paramed_type *T); +struct tl_ds_privacy_key *fetch_ds_type_bare_privacy_key (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_type_privacy_rule (struct paramed_type *T); +struct tl_ds_privacy_rule *fetch_ds_type_bare_privacy_rule (struct paramed_type *T); +struct tl_ds_received_notify_message *fetch_ds_type_received_notify_message (struct paramed_type *T); +struct tl_ds_received_notify_message *fetch_ds_type_bare_received_notify_message (struct paramed_type *T); +struct tl_ds_reply_markup *fetch_ds_type_reply_markup (struct paramed_type *T); +struct tl_ds_reply_markup *fetch_ds_type_bare_reply_markup (struct paramed_type *T); +struct tl_ds_res_p_q *fetch_ds_type_res_p_q (struct paramed_type *T); +struct tl_ds_res_p_q *fetch_ds_type_bare_res_p_q (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_type_send_message_action (struct paramed_type *T); +struct tl_ds_send_message_action *fetch_ds_type_bare_send_message_action (struct paramed_type *T); +struct tl_ds_server_d_h_params *fetch_ds_type_server_d_h_params (struct paramed_type *T); +struct tl_ds_server_d_h_params *fetch_ds_type_bare_server_d_h_params (struct paramed_type *T); +struct tl_ds_server_d_h_inner_data *fetch_ds_type_server_d_h_inner_data (struct paramed_type *T); +struct tl_ds_server_d_h_inner_data *fetch_ds_type_bare_server_d_h_inner_data (struct paramed_type *T); +struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_set_client_d_h_params_answer (struct paramed_type *T); +struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_bare_set_client_d_h_params_answer (struct paramed_type *T); +struct tl_ds_sticker_pack *fetch_ds_type_sticker_pack (struct paramed_type *T); +struct tl_ds_sticker_pack *fetch_ds_type_bare_sticker_pack (struct paramed_type *T); +struct tl_ds_sticker_set *fetch_ds_type_sticker_set (struct paramed_type *T); +struct tl_ds_sticker_set *fetch_ds_type_bare_sticker_set (struct paramed_type *T); +struct tl_ds_string *fetch_ds_type_string (struct paramed_type *T); +struct tl_ds_string *fetch_ds_type_bare_string (struct paramed_type *T); +struct tl_ds_update *fetch_ds_type_update (struct paramed_type *T); +struct tl_ds_update *fetch_ds_type_bare_update (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_type_updates (struct paramed_type *T); +struct tl_ds_updates *fetch_ds_type_bare_updates (struct paramed_type *T); +struct tl_ds_user *fetch_ds_type_user (struct paramed_type *T); +struct tl_ds_user *fetch_ds_type_bare_user (struct paramed_type *T); +struct tl_ds_user_full *fetch_ds_type_user_full (struct paramed_type *T); +struct tl_ds_user_full *fetch_ds_type_bare_user_full (struct paramed_type *T); +struct tl_ds_user_profile_photo *fetch_ds_type_user_profile_photo (struct paramed_type *T); +struct tl_ds_user_profile_photo *fetch_ds_type_bare_user_profile_photo (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_type_user_status (struct paramed_type *T); +struct tl_ds_user_status *fetch_ds_type_bare_user_status (struct paramed_type *T); +struct tl_ds_vector *fetch_ds_type_vector (struct paramed_type *T); +struct tl_ds_vector *fetch_ds_type_bare_vector (struct paramed_type *T); +struct tl_ds_video *fetch_ds_type_video (struct paramed_type *T); +struct tl_ds_video *fetch_ds_type_bare_video (struct paramed_type *T); +struct tl_ds_wall_paper *fetch_ds_type_wall_paper (struct paramed_type *T); +struct tl_ds_wall_paper *fetch_ds_type_bare_wall_paper (struct paramed_type *T); +struct tl_ds_web_page *fetch_ds_type_web_page (struct paramed_type *T); +struct tl_ds_web_page *fetch_ds_type_bare_web_page (struct paramed_type *T); +struct tl_ds_account_authorizations *fetch_ds_type_account_authorizations (struct paramed_type *T); +struct tl_ds_account_authorizations *fetch_ds_type_bare_account_authorizations (struct paramed_type *T); +struct tl_ds_account_password *fetch_ds_type_account_password (struct paramed_type *T); +struct tl_ds_account_password *fetch_ds_type_bare_account_password (struct paramed_type *T); +struct tl_ds_account_password_input_settings *fetch_ds_type_account_password_input_settings (struct paramed_type *T); +struct tl_ds_account_password_input_settings *fetch_ds_type_bare_account_password_input_settings (struct paramed_type *T); +struct tl_ds_account_password_settings *fetch_ds_type_account_password_settings (struct paramed_type *T); +struct tl_ds_account_password_settings *fetch_ds_type_bare_account_password_settings (struct paramed_type *T); +struct tl_ds_account_privacy_rules *fetch_ds_type_account_privacy_rules (struct paramed_type *T); +struct tl_ds_account_privacy_rules *fetch_ds_type_bare_account_privacy_rules (struct paramed_type *T); +struct tl_ds_account_sent_change_phone_code *fetch_ds_type_account_sent_change_phone_code (struct paramed_type *T); +struct tl_ds_account_sent_change_phone_code *fetch_ds_type_bare_account_sent_change_phone_code (struct paramed_type *T); +struct tl_ds_auth_authorization *fetch_ds_type_auth_authorization (struct paramed_type *T); +struct tl_ds_auth_authorization *fetch_ds_type_bare_auth_authorization (struct paramed_type *T); +struct tl_ds_auth_checked_phone *fetch_ds_type_auth_checked_phone (struct paramed_type *T); +struct tl_ds_auth_checked_phone *fetch_ds_type_bare_auth_checked_phone (struct paramed_type *T); +struct tl_ds_auth_exported_authorization *fetch_ds_type_auth_exported_authorization (struct paramed_type *T); +struct tl_ds_auth_exported_authorization *fetch_ds_type_bare_auth_exported_authorization (struct paramed_type *T); +struct tl_ds_auth_password_recovery *fetch_ds_type_auth_password_recovery (struct paramed_type *T); +struct tl_ds_auth_password_recovery *fetch_ds_type_bare_auth_password_recovery (struct paramed_type *T); +struct tl_ds_auth_sent_code *fetch_ds_type_auth_sent_code (struct paramed_type *T); +struct tl_ds_auth_sent_code *fetch_ds_type_bare_auth_sent_code (struct paramed_type *T); +struct tl_ds_binlog_encr_key *fetch_ds_type_binlog_encr_key (struct paramed_type *T); +struct tl_ds_binlog_encr_key *fetch_ds_type_bare_binlog_encr_key (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_type_binlog_update (struct paramed_type *T); +struct tl_ds_binlog_update *fetch_ds_type_bare_binlog_update (struct paramed_type *T); +struct tl_ds_contacts_blocked *fetch_ds_type_contacts_blocked (struct paramed_type *T); +struct tl_ds_contacts_blocked *fetch_ds_type_bare_contacts_blocked (struct paramed_type *T); +struct tl_ds_contacts_contacts *fetch_ds_type_contacts_contacts (struct paramed_type *T); +struct tl_ds_contacts_contacts *fetch_ds_type_bare_contacts_contacts (struct paramed_type *T); +struct tl_ds_contacts_found *fetch_ds_type_contacts_found (struct paramed_type *T); +struct tl_ds_contacts_found *fetch_ds_type_bare_contacts_found (struct paramed_type *T); +struct tl_ds_contacts_imported_contacts *fetch_ds_type_contacts_imported_contacts (struct paramed_type *T); +struct tl_ds_contacts_imported_contacts *fetch_ds_type_bare_contacts_imported_contacts (struct paramed_type *T); +struct tl_ds_contacts_link *fetch_ds_type_contacts_link (struct paramed_type *T); +struct tl_ds_contacts_link *fetch_ds_type_bare_contacts_link (struct paramed_type *T); +struct tl_ds_contacts_suggested *fetch_ds_type_contacts_suggested (struct paramed_type *T); +struct tl_ds_contacts_suggested *fetch_ds_type_bare_contacts_suggested (struct paramed_type *T); +struct tl_ds_geochats_located *fetch_ds_type_geochats_located (struct paramed_type *T); +struct tl_ds_geochats_located *fetch_ds_type_bare_geochats_located (struct paramed_type *T); +struct tl_ds_geochats_messages *fetch_ds_type_geochats_messages (struct paramed_type *T); +struct tl_ds_geochats_messages *fetch_ds_type_bare_geochats_messages (struct paramed_type *T); +struct tl_ds_geochats_stated_message *fetch_ds_type_geochats_stated_message (struct paramed_type *T); +struct tl_ds_geochats_stated_message *fetch_ds_type_bare_geochats_stated_message (struct paramed_type *T); +struct tl_ds_help_app_update *fetch_ds_type_help_app_update (struct paramed_type *T); +struct tl_ds_help_app_update *fetch_ds_type_bare_help_app_update (struct paramed_type *T); +struct tl_ds_help_invite_text *fetch_ds_type_help_invite_text (struct paramed_type *T); +struct tl_ds_help_invite_text *fetch_ds_type_bare_help_invite_text (struct paramed_type *T); +struct tl_ds_help_support *fetch_ds_type_help_support (struct paramed_type *T); +struct tl_ds_help_support *fetch_ds_type_bare_help_support (struct paramed_type *T); +struct tl_ds_messages_affected_history *fetch_ds_type_messages_affected_history (struct paramed_type *T); +struct tl_ds_messages_affected_history *fetch_ds_type_bare_messages_affected_history (struct paramed_type *T); +struct tl_ds_messages_affected_messages *fetch_ds_type_messages_affected_messages (struct paramed_type *T); +struct tl_ds_messages_affected_messages *fetch_ds_type_bare_messages_affected_messages (struct paramed_type *T); +struct tl_ds_messages_all_stickers *fetch_ds_type_messages_all_stickers (struct paramed_type *T); +struct tl_ds_messages_all_stickers *fetch_ds_type_bare_messages_all_stickers (struct paramed_type *T); +struct tl_ds_messages_chat_full *fetch_ds_type_messages_chat_full (struct paramed_type *T); +struct tl_ds_messages_chat_full *fetch_ds_type_bare_messages_chat_full (struct paramed_type *T); +struct tl_ds_messages_chats *fetch_ds_type_messages_chats (struct paramed_type *T); +struct tl_ds_messages_chats *fetch_ds_type_bare_messages_chats (struct paramed_type *T); +struct tl_ds_messages_dh_config *fetch_ds_type_messages_dh_config (struct paramed_type *T); +struct tl_ds_messages_dh_config *fetch_ds_type_bare_messages_dh_config (struct paramed_type *T); +struct tl_ds_messages_dialogs *fetch_ds_type_messages_dialogs (struct paramed_type *T); +struct tl_ds_messages_dialogs *fetch_ds_type_bare_messages_dialogs (struct paramed_type *T); +struct tl_ds_messages_message *fetch_ds_type_messages_message (struct paramed_type *T); +struct tl_ds_messages_message *fetch_ds_type_bare_messages_message (struct paramed_type *T); +struct tl_ds_messages_messages *fetch_ds_type_messages_messages (struct paramed_type *T); +struct tl_ds_messages_messages *fetch_ds_type_bare_messages_messages (struct paramed_type *T); +struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_messages_sent_encrypted_message (struct paramed_type *T); +struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_bare_messages_sent_encrypted_message (struct paramed_type *T); +struct tl_ds_messages_sent_message *fetch_ds_type_messages_sent_message (struct paramed_type *T); +struct tl_ds_messages_sent_message *fetch_ds_type_bare_messages_sent_message (struct paramed_type *T); +struct tl_ds_messages_sticker_set *fetch_ds_type_messages_sticker_set (struct paramed_type *T); +struct tl_ds_messages_sticker_set *fetch_ds_type_bare_messages_sticker_set (struct paramed_type *T); +struct tl_ds_messages_stickers *fetch_ds_type_messages_stickers (struct paramed_type *T); +struct tl_ds_messages_stickers *fetch_ds_type_bare_messages_stickers (struct paramed_type *T); +struct tl_ds_photos_photo *fetch_ds_type_photos_photo (struct paramed_type *T); +struct tl_ds_photos_photo *fetch_ds_type_bare_photos_photo (struct paramed_type *T); +struct tl_ds_photos_photos *fetch_ds_type_photos_photos (struct paramed_type *T); +struct tl_ds_photos_photos *fetch_ds_type_bare_photos_photos (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_type_storage_file_type (struct paramed_type *T); +struct tl_ds_storage_file_type *fetch_ds_type_bare_storage_file_type (struct paramed_type *T); +struct tl_ds_updates_difference *fetch_ds_type_updates_difference (struct paramed_type *T); +struct tl_ds_updates_difference *fetch_ds_type_bare_updates_difference (struct paramed_type *T); +struct tl_ds_updates_state *fetch_ds_type_updates_state (struct paramed_type *T); +struct tl_ds_updates_state *fetch_ds_type_bare_updates_state (struct paramed_type *T); +struct tl_ds_upload_file *fetch_ds_type_upload_file (struct paramed_type *T); +struct tl_ds_upload_file *fetch_ds_type_bare_upload_file (struct paramed_type *T); +void *fetch_ds_type_any (struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-fetch.c b/libs/tgl/src/auto/auto-fetch.c new file mode 100644 index 0000000000..adb2ef789d --- /dev/null +++ b/libs/tgl/src/auto/auto-fetch.c @@ -0,0 +1,16330 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-fetch.h" +#include "auto-skip.h" +#include "..\auto-static-fetch.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-fetch.h" +#include "auto/auto-skip.h" +#include "auto-static-fetch.c" +#include "mtproto-common.h" +#endif +#include +int fetch_constructor_account_days_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + eprintf (" audioEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + eprintf (" audio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; } + eprintf (" authorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" device_model :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" platform :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" system_version :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" api_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" app_name :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" app_version :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date_created :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date_active :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" country :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" region :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bool_false (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + eprintf (" boolFalse"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bool_true (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + eprintf (" boolTrue"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bot_command (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + eprintf (" botCommand"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" command :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bot_command_old (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + eprintf (" botCommandOld"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" command :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" params :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bot_info_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + eprintf (" botInfoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bot_info (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + eprintf (" botInfo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" share_text :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" commands :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_bytes (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chatEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_photo (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" left :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chatForbidden"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" geoChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_point (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_photo (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants_count :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" checked_in :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return -1; } + eprintf (" chatFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_participants (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer_notify_settings (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exported_invite :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_exported_chat_invite (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_invite_already (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + eprintf (" chatInviteAlready"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_invite (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + eprintf (" chatInvite"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; } + eprintf (" chatLocated"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" distance :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; } + eprintf (" chatParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_participants_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + eprintf (" chatParticipantsForbidden"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + eprintf (" chatParticipants"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + eprintf (" chatPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + eprintf (" chatPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_small :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_big :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_client_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; } + eprintf (" client_DH_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" retry_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_b :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return -1; } + eprintf (" config"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" test_mode :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" this_dc :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_options :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_size_max :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" broadcast_size_max :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" forwarded_count_max :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" online_update_period_ms :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offline_blur_timeout_ms :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offline_idle_timeout_ms :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" online_cloud_timeout_ms :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_cloud_delay_ms :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_default_delay_ms :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field14) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_big_size :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field15) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" push_chat_period_ms :"); } + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field16) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" push_chat_limit :"); } + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field17) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" disabled_features :"); } + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field18) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; } + eprintf (" contact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mutual :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; } + eprintf (" contactBlocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_contact_link_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkUnknown"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_link_none (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkNone"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_link_has_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkHasPhone"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_link_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; } + eprintf (" contactStatus"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_status (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contact_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; } + eprintf (" contactSuggested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mutual_contacts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dc_option_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + eprintf (" dcOptionL28"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hostname :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip_address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + eprintf (" dcOption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip_address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + eprintf (" decryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_decrypted_message_media (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + eprintf (" decryptedMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_decrypted_message_action (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionSetMessageTTL"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl_seconds :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_read_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionReadMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionDeleteMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionScreenshotMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_flush_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionFlushHistory"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_resend (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionResend"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" start_seq_no :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" end_seq_no :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionNotifyLayer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_send_message_action (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_request_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionRequestKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_accept_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionAcceptKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_b :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_abort_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionAbortKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_commit_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionCommitKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_action_noop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionNoop"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; } + eprintf (" decryptedMessageLayer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_bytes :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" in_seq_no :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" out_seq_no :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_decrypted_message (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_external_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaExternalDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo_size (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaVideoL12"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaAudioL12"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dialog (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return -1; } + eprintf (" dialog"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" top_message :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" read_inbox_max_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" unread_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer_notify_settings (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_disabled_feature (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; } + eprintf (" disabledFeature"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" feature :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" documentEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" document"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo_size (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_l19 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" document_l19"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo_size (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_image_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeImageSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_animated (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeAnimated"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_sticker_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeStickerL28"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" alt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_sticker (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeSticker"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" alt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" stickerset :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_sticker_set (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_document_attribute_filename (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeFilename"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_double (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; } + if (in_remaining () < 8) { return -1;} + eprintf (" %lf", fetch_double ()); + return 0; +} +int fetch_constructor_encrypted_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_chat_waiting (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatWaiting"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_chat_requested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatRequested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a_or_b :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_chat_discarded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatDiscarded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + eprintf (" encryptedFileEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + eprintf (" encryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + eprintf (" encryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_encrypted_file (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_encrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + eprintf (" encryptedMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_error (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; } + eprintf (" error"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" code :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" text :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_invite_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + eprintf (" chatInviteEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_chat_invite_exported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + eprintf (" chatInviteExported"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" link :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_file_location_unavailable (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + eprintf (" fileLocationUnavailable"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + eprintf (" fileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_chat_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_chat_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_action (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + eprintf (" geoPointEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + eprintf (" geoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_imported_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; } + eprintf (" importedContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" client_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_app_event (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; } + eprintf (" inputAppEvent"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" time :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" data :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + eprintf (" inputAudioEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + eprintf (" inputAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_chat_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatUploadedPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_photo_crop (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_photo_crop (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_phone_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; } + eprintf (" inputPhoneContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" client_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + eprintf (" inputDocumentEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + eprintf (" inputDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; } + eprintf (" inputEncryptedChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_file_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileUploaded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" md5_checksum :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileBigUploaded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + eprintf (" inputFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" md5_checksum :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_file_big (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + eprintf (" inputFileBig"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_video_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputVideoFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_encrypted_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputEncryptedFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_audio_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputAudioFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_document_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputDocumentFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; } + eprintf (" inputGeoChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + eprintf (" inputGeoPointEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + eprintf (" inputGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_point :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_geo_point (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedThumbVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_video (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" audio_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_audio (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedThumbDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_file (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" document_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_document (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaVenue"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_point :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_geo_point (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" provider :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyChats"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_notify_geo_chat_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyGeoChatPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_input_geo_chat (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerSelf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerForeign"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + eprintf (" inputPeerNotifyEventsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + eprintf (" inputPeerNotifyEventsAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; } + eprintf (" inputPeerNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mute_until :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sound :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" show_previews :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" events_mask :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + eprintf (" inputPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + eprintf (" inputPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_photo_crop_auto (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + eprintf (" inputPhotoCropAuto"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_photo_crop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + eprintf (" inputPhotoCrop"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_left :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_top :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_width :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_double (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; } + eprintf (" inputPrivacyKeyStatusTimestamp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_sticker_set_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_sticker_set_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetID"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_sticker_set_short_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetShortName"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" short_name :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_user_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserSelf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_user_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_user_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserForeign"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + eprintf (" inputVideoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + eprintf (" inputVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_int (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", fetch_int ()); + return 0; +} +int fetch_constructor_int128 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; } + eprintf (" int128"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_int256 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; } + eprintf (" int256"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_keyboard_button (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_keyboard_button_row (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; } + if (in_remaining () < 8) { return -1;} + eprintf (" %I64d", fetch_long ()); + return 0; +} +int fetch_constructor_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" messageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" message"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_markup :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_reply_markup (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" messageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_action (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatCreate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_edit_title (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatEditTitle"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatEditPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatDeletePhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_add_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatAddUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_delete_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatDeleteUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_geo_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionGeoChatCreate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionGeoChatCheckin"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_action_chat_joined_by_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatJoinedByLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_video (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_geo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaGeo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_point (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_unsupported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaUnsupported"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" document :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_document (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" audio :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_audio (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaWebPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" webpage :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_web_page (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVenue"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_point (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" provider :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaPhotoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_message_media_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVideoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_video (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotos"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotoVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotoVideoDocuments"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_input_messages_filter_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_nearest_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; } + eprintf (" nearestDc"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" country :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" this_dc :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nearest_dc :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyChats"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_null (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; } + eprintf (" null"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_p_q_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + eprintf (" p_q_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" q :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int256 (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_p_q_inner_data_temp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + eprintf (" p_q_inner_data_temp"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" q :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int256 (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires_in :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + eprintf (" peerUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + eprintf (" peerChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + eprintf (" peerNotifyEventsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + eprintf (" peerNotifyEventsAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_notify_settings_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + eprintf (" peerNotifySettingsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + eprintf (" peerNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mute_until :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sound :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" show_previews :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" events_mask :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_point (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_point (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo_size_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoSizeEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photo_cached_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoCachedSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; } + eprintf (" privacyKeyStatusTimestamp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_received_notify_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; } + eprintf (" receivedNotifyMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_reply_keyboard_hide (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardHide"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_reply_keyboard_force_reply (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardForceReply"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_reply_keyboard_markup (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardMarkup"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rows :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_res_p_q (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; } + eprintf (" resPQ"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_public_key_fingerprints :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_typing_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageTypingAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_cancel_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageCancelAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_record_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageRecordVideoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadVideoActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadVideoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_record_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageRecordAudioAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadAudioActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadAudioAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_photo_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadPhotoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadDocumentActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_upload_document_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadDocumentAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_geo_location_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageGeoLocationAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageChooseContactAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_server_d_h_params_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + eprintf (" server_DH_params_fail"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_server_d_h_params_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + eprintf (" server_DH_params_ok"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encrypted_answer :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_server_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; } + eprintf (" server_DH_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dh_prime :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_time :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dh_gen_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_ok"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash1 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dh_gen_retry (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_retry"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash2 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_dh_gen_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_fail"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash3 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int128 (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_sticker_pack (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; } + eprintf (" stickerPack"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" emoticon :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; } + eprintf (" stickerSet"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" short_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_string (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; } + static char buf[1 << 22]; + int l = prefetch_strlen (); + if (l < 0 || (l >= (1 << 22) - 2)) { return -1; } + memcpy (buf, fetch_str (l), l); + buf[l] = 0; + print_escaped_string (buf, l); + return 0; +} +int fetch_constructor_update_new_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_message_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateMessageID"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateDeleteMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_send_message_action (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_chat_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatUserTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_send_message_action (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipants"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_participants (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserStatus"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_status (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserName"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_profile_photo (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" previous :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_contact_registered (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateContactRegistered"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_contact_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateContactLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" my_link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_contact_link (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" foreign_link :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_contact_link (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_new_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" auth_key_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" device :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_new_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewGeoChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_chat_message (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_new_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewEncryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_encrypted_message (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryptedChatTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_encryption (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_encrypted_chat (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_encrypted_messages_read (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryptedMessagesRead"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_chat_participant_add (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipantAdd"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_chat_participant_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipantDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_dc_options (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateDcOptions"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_options :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserBlocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_notify_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer_notify_settings (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_service_notification (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateServiceNotification"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message_text :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" popup :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_privacy (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updatePrivacy"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_privacy_key (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rules :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_user_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserPhone"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_read_history_inbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadHistoryInbox"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_read_history_outbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadHistoryOutbox"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateWebPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" webpage :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_web_page (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_read_messages_contents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadMessagesContents"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateMsgUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_too_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updatesTooLong"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_update_short_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShortMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_update_short_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShortChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_update_short (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShort"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" update :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_update (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_combined (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updatesCombined"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" updates :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq_start :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updates"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" updates :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + eprintf (" userEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + eprintf (" user"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 4)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_profile_photo (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_status (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 14)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info_version :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_user_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; } + eprintf (" userFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_contacts_link (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" profile_photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_peer_notify_settings (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bot_info (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_profile_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + eprintf (" userProfilePhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_profile_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + eprintf (" userProfilePhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_small :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_big :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_file_location (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_online (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusOnline"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_offline (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusOffline"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" was_online :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_recently (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusRecently"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_last_week (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusLastWeek"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_user_status_last_month (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusLastMonth"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_vector (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; } + if (ODDP(T->params[0])) { return -1; } + struct paramed_type *var0 = T->params[0]; assert (var0); + eprintf (" vector"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var1 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + eprintf (" ["); + if (multiline_output >= 1) { eprintf ("\n"); } + if (multiline_output >= 1) { multiline_offset += multiline_offset_size;} + while (multiplicity3 -- > 0) { + if (multiline_output >= 1) { print_offset (); } + if (fetch_type_any (field3) < 0) { return -1;} + if (multiline_output >= 1) { eprintf ("\n"); } + } + if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();} + eprintf (" ]"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" videoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" video"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo_size (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" videoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo_size (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_wall_paper (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + eprintf (" wallPaper"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" color :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_wall_paper_solid (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + eprintf (" wallPaperSolid"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bg_color :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" color :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_web_page_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_web_page_pending (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPagePending"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" url :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" display_url :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" site_name :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 4)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_url :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_type :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_width :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_height :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 7)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field14) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 8)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" author :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field15) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_account_authorizations (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_account_no_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + eprintf (" account.noPassword"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_account_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + eprintf (" account.password"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" current_salt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" has_recovery :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_account_password_input_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; } + eprintf (" account.passwordInputSettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_password_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hint :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_account_password_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_account_privacy_rules (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; } + eprintf (" account.privacyRules"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rules :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_account_sent_change_phone_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; } + eprintf (" account.sentChangePhoneCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_auth_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_auth_checked_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_auth_exported_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; } + eprintf (" auth.exportedAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_auth_password_recovery (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_auth_sent_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + eprintf (" auth.sentCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_registered :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" is_password :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_auth_sent_app_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + eprintf (" auth.sentAppCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_registered :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" is_password :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_encr_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; } + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + eprintf (" ["); + if (multiline_output >= 1) { eprintf ("\n"); } + if (multiline_output >= 1) { multiline_offset += multiline_offset_size;} + while (multiplicity1 -- > 0) { + if (multiline_output >= 1) { print_offset (); } + if (fetch_type_any (field1) < 0) { return -1;} + if (multiline_output >= 1) { eprintf ("\n"); } + } + if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();} + eprintf (" ]"); + return 0; +} +int fetch_constructor_binlog_start (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.start"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcOption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_dc_option_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcOptionNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_auth_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.authKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_binlog_encr_key (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_default_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.defaultDc"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_dc_signed (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcSigned"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_our_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.ourId"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_dh_params (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setDhParams"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" root :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" prime :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_binlog_encr_key (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_pts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setPts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_qts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setQts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_date (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setDate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_seq (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setSeq"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_encr_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_binlog_encr_key (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_key :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_binlog_encr_key (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" in_seq_no :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_in_seq_no :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" out_seq_no :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field14) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 27)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field15) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatExchangeNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_binlog_encr_key (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_user_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.userDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_user_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.userNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" real_first_name :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" real_last_name :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_photo :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user_profile_photo (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_in :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_out :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bot_info (field14) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_num :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_photo (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_in :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_out :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_chat_add_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatAddParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatDelParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_set_msg_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setMsgId"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" old_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_message_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_message_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_action (field11) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_id :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field12) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_markup :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_reply_markup (field13) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_message_encr_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageEncrNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + if (in_remaining () < 4) { return -1;} + eprintf (" %d", prefetch_int ()); + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_media :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_decrypted_message_media (field8) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_action :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_decrypted_message_action (field9) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_encrypted_file (field10) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int fetch_constructor_binlog_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.msgUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_long (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_binlog_reset_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.resetAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + eprintf (" contacts.blocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_blocked_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + eprintf (" contacts.blockedSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_contacts_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + eprintf (" contacts.contactsNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + eprintf (" contacts.contacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" contacts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; } + eprintf (" contacts.found"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_imported_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; } + eprintf (" contacts.importedContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" imported :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" retry_contacts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; } + eprintf (" contacts.link"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" my_link :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_contact_link (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" foreign_link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_contact_link (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_contacts_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; } + eprintf (" contacts.suggested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geochats_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; } + eprintf (" geochats.located"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geochats_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + eprintf (" geochats.messages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geochats_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + eprintf (" geochats.messagesSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_geochats_stated_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; } + eprintf (" geochats.statedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_geo_chat_message (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_help_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + eprintf (" help.appUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" critical :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bool (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" url :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" text :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_help_no_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + eprintf (" help.noAppUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_help_invite_text (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_help_support (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; } + eprintf (" help.support"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_user (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_affected_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return -1; } + eprintf (" messages.affectedHistory"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offset :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_affected_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; } + eprintf (" messages.affectedMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + eprintf (" messages.allStickersNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_all_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + eprintf (" messages.allStickers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" packs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sets :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; } + eprintf (" messages.chatFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" full_chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_chat_full (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + return 0; +} +int fetch_constructor_messages_dh_config_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + eprintf (" messages.dhConfigNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_dh_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + eprintf (" messages.dhConfig"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_dialogs (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + eprintf (" messages.dialogs"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dialogs :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_dialogs_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + eprintf (" messages.dialogsSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dialogs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; } + eprintf (" messages.messageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + eprintf (" messages.messages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + eprintf (" messages.messagesSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_sent_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + eprintf (" messages.sentEncryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_sent_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + eprintf (" messages.sentEncryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_encrypted_file (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_sent_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + eprintf (" messages.sentMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_sent_message_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + eprintf (" messages.sentMessageLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_message_media (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" links :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field7) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; } + eprintf (" messages.stickerSet"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" set :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_sticker_set (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" packs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + eprintf (" messages.stickersNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_messages_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + eprintf (" messages.stickers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_string (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" stickers :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photos_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; } + eprintf (" photos.photo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_photo (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photos_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + eprintf (" photos.photos"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photos :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_photos_photos_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + eprintf (" photos.photosSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photos :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileUnknown"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_jpeg (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileJpeg"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_gif (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileGif"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_png (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePng"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_pdf (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePdf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_mp3 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMp3"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_mov (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMov"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_partial (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePartial"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_mp4 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMp4"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_storage_file_webp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileWebp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_difference_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.differenceEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_difference (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.difference"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_encrypted_messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" other_updates :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_updates_state (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_difference_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.differenceSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_encrypted_messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" other_updates :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (fetch_type_vector (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" intermediate_state :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_updates_state (field6) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_updates_state (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; } + eprintf (" updates.state"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field4) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" unread_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field5) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_constructor_upload_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; } + eprintf (" upload.file"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_storage_file_type (field1) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mtime :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_int (field2) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (fetch_type_bare_bytes (field3) < 0) { return -1;} + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int fetch_type_account_days_t_t_l (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb8d0afdf: res = fetch_constructor_account_days_t_t_l (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_account_days_t_t_l (struct paramed_type *T) { + if (fetch_constructor_account_days_t_t_l (T) >= 0) { return 0; } + return -1; +} +int fetch_type_audio (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x586988d8: res = fetch_constructor_audio_empty (T); break; + case 0xc7ac6496: res = fetch_constructor_audio (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_audio_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_audio_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x7bf2e6f6: res = fetch_constructor_authorization (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_authorization (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_authorization (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_bool (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xbc799737: res = fetch_constructor_bool_false (T); break; + case 0x997275b5: res = fetch_constructor_bool_true (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_bool (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_bool_false (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bool_false (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bool_true (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bool_true (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_bot_command (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc27ac8c7: res = fetch_constructor_bot_command (T); break; + case 0xb79d22ab: res = fetch_constructor_bot_command_old (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_bot_command (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_bot_command (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_command (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bot_command_old (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_command_old (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_bot_info (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xbb2e37ce: res = fetch_constructor_bot_info_empty (T); break; + case 0x09cf585d: res = fetch_constructor_bot_info (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_bot_info (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_bot_info_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_info_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bot_info (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bot_info (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_bytes (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0ee1379f: res = fetch_constructor_bytes (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_bytes (struct paramed_type *T) { + if (fetch_constructor_bytes (T) >= 0) { return 0; } + return -1; +} +int fetch_type_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x9ba2d800: res = fetch_constructor_chat_empty (T); break; + case 0x6e9c9bc7: res = fetch_constructor_chat (T); break; + case 0xfb0ccc41: res = fetch_constructor_chat_forbidden (T); break; + case 0x75eaea5a: res = fetch_constructor_geo_chat (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_chat_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_forbidden (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_forbidden (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_chat_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x2e02a614: res = fetch_constructor_chat_full (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_full (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_chat_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_chat_invite (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5a686d7c: res = fetch_constructor_chat_invite_already (T); break; + case 0xce917dcd: res = fetch_constructor_chat_invite (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_chat_invite_already (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_already (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_invite (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_chat_located (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3631cf4c: res = fetch_constructor_chat_located (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_located (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_chat_located (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_chat_participant (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc8d7493e: res = fetch_constructor_chat_participant (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_participant (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_chat_participant (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_chat_participants (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0fd2bb8a: res = fetch_constructor_chat_participants_forbidden (T); break; + case 0x7841b415: res = fetch_constructor_chat_participants (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_participants (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_chat_participants_forbidden (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_participants_forbidden (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_participants (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_participants (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_chat_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x37c1011c: res = fetch_constructor_chat_photo_empty (T); break; + case 0x6153276a: res = fetch_constructor_chat_photo (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_client_d_h_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x6643b654: res = fetch_constructor_client_d_h_inner_data (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_client_d_h_inner_data (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_client_d_h_inner_data (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_config (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x4e32b894: res = fetch_constructor_config (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_config (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_config (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf911c994: res = fetch_constructor_contact (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contact (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contact_blocked (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x561bc879: res = fetch_constructor_contact_blocked (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contact_blocked (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contact_blocked (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contact_found (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xea879f95: res = fetch_constructor_contact_found (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_contact_found (struct paramed_type *T) { + if (fetch_constructor_contact_found (T) >= 0) { return 0; } + return -1; +} +int fetch_type_contact_link (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5f4f9247: res = fetch_constructor_contact_link_unknown (T); break; + case 0xfeedd3ad: res = fetch_constructor_contact_link_none (T); break; + case 0x268f3f59: res = fetch_constructor_contact_link_has_phone (T); break; + case 0xd502c2d0: res = fetch_constructor_contact_link_contact (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contact_link (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_contact_link_unknown (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_unknown (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_none (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_none (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_has_phone (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_has_phone (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contact_link_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_contact_status (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xd3680c61: res = fetch_constructor_contact_status (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contact_status (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contact_status (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contact_suggested (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3de191a1: res = fetch_constructor_contact_suggested (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contact_suggested (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contact_suggested (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_dc_option (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x2ec2a43c: res = fetch_constructor_dc_option_l28 (T); break; + case 0x05d8c6cc: res = fetch_constructor_dc_option (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_dc_option (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_dc_option_l28 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dc_option_l28 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dc_option (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dc_option (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_decrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x204d3878: res = fetch_constructor_decrypted_message (T); break; + case 0x73164160: res = fetch_constructor_decrypted_message_service (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_decrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_decrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_decrypted_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa1733aec: res = fetch_constructor_decrypted_message_action_set_message_t_t_l (T); break; + case 0x0c4f40be: res = fetch_constructor_decrypted_message_action_read_messages (T); break; + case 0x65614304: res = fetch_constructor_decrypted_message_action_delete_messages (T); break; + case 0x8ac1f475: res = fetch_constructor_decrypted_message_action_screenshot_messages (T); break; + case 0x6719e45c: res = fetch_constructor_decrypted_message_action_flush_history (T); break; + case 0x511110b0: res = fetch_constructor_decrypted_message_action_resend (T); break; + case 0xf3048883: res = fetch_constructor_decrypted_message_action_notify_layer (T); break; + case 0xccb27641: res = fetch_constructor_decrypted_message_action_typing (T); break; + case 0xf3c9611b: res = fetch_constructor_decrypted_message_action_request_key (T); break; + case 0x6fe1735b: res = fetch_constructor_decrypted_message_action_accept_key (T); break; + case 0xdd05ec6b: res = fetch_constructor_decrypted_message_action_abort_key (T); break; + case 0xec2e0b9b: res = fetch_constructor_decrypted_message_action_commit_key (T); break; + case 0xa82fdd63: res = fetch_constructor_decrypted_message_action_noop (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_decrypted_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_set_message_t_t_l (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_read_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_delete_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_screenshot_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_flush_history (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_resend (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_resend (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_notify_layer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_request_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_accept_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_abort_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_commit_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_noop (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_noop (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_decrypted_message_layer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1be31789: res = fetch_constructor_decrypted_message_layer (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_decrypted_message_layer (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_decrypted_message_layer (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_decrypted_message_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x089f5c4a: res = fetch_constructor_decrypted_message_media_empty (T); break; + case 0x32798a8c: res = fetch_constructor_decrypted_message_media_photo (T); break; + case 0x35480a59: res = fetch_constructor_decrypted_message_media_geo_point (T); break; + case 0x588a0a97: res = fetch_constructor_decrypted_message_media_contact (T); break; + case 0xb095434b: res = fetch_constructor_decrypted_message_media_document (T); break; + case 0x524a415d: res = fetch_constructor_decrypted_message_media_video (T); break; + case 0x57e0a9cb: res = fetch_constructor_decrypted_message_media_audio (T); break; + case 0xfa95b0dd: res = fetch_constructor_decrypted_message_media_external_document (T); break; + case 0x4cee6ef3: res = fetch_constructor_decrypted_message_media_video_l12 (T); break; + case 0x6080758f: res = fetch_constructor_decrypted_message_media_audio_l12 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_decrypted_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_decrypted_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_external_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_video_l12 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_audio_l12 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_dialog (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc1dd804a: res = fetch_constructor_dialog (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_dialog (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_dialog (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_disabled_feature (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xae636f24: res = fetch_constructor_disabled_feature (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_disabled_feature (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_disabled_feature (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_document (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x36f8c871: res = fetch_constructor_document_empty (T); break; + case 0xf9a39f4f: res = fetch_constructor_document (T); break; + case 0x9efc6326: res = fetch_constructor_document_l19 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_document_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_l19 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_l19 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_document_attribute (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x6c37c15c: res = fetch_constructor_document_attribute_image_size (T); break; + case 0x11b58939: res = fetch_constructor_document_attribute_animated (T); break; + case 0x994c9882: res = fetch_constructor_document_attribute_sticker_l28 (T); break; + case 0x3a556302: res = fetch_constructor_document_attribute_sticker (T); break; + case 0x5910cccb: res = fetch_constructor_document_attribute_video (T); break; + case 0x051448e5: res = fetch_constructor_document_attribute_audio (T); break; + case 0x15590068: res = fetch_constructor_document_attribute_filename (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_document_attribute (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_document_attribute_image_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_image_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_animated (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_animated (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_sticker_l28 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_sticker_l28 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_sticker (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_sticker (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_filename (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_filename (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_double (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x2210c154: res = fetch_constructor_double (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_double (struct paramed_type *T) { + if (fetch_constructor_double (T) >= 0) { return 0; } + return -1; +} +int fetch_type_encrypted_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xab7ec0a0: res = fetch_constructor_encrypted_chat_empty (T); break; + case 0x3bf703dc: res = fetch_constructor_encrypted_chat_waiting (T); break; + case 0xc878527e: res = fetch_constructor_encrypted_chat_requested (T); break; + case 0xfa56ce36: res = fetch_constructor_encrypted_chat (T); break; + case 0x13d6dd27: res = fetch_constructor_encrypted_chat_discarded (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_encrypted_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_encrypted_chat_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_waiting (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_waiting (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_requested (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_requested (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_discarded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_discarded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_encrypted_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc21f497e: res = fetch_constructor_encrypted_file_empty (T); break; + case 0x4a70994c: res = fetch_constructor_encrypted_file (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_file_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_encrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xed18c118: res = fetch_constructor_encrypted_message (T); break; + case 0x23734b06: res = fetch_constructor_encrypted_message_service (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_error (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc4b9f9bb: res = fetch_constructor_error (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_error (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_error (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_exported_chat_invite (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x69df3769: res = fetch_constructor_chat_invite_empty (T); break; + case 0xfc2e05bc: res = fetch_constructor_chat_invite_exported (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_exported_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_chat_invite_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_invite_exported (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_invite_exported (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_file_location (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x7c596b46: res = fetch_constructor_file_location_unavailable (T); break; + case 0x53d69076: res = fetch_constructor_file_location (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_file_location_unavailable (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_file_location_unavailable (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_geo_chat_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x60311a9b: res = fetch_constructor_geo_chat_message_empty (T); break; + case 0x4505f8e1: res = fetch_constructor_geo_chat_message (T); break; + case 0xd34fa24e: res = fetch_constructor_geo_chat_message_service (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_geo_chat_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_geo_chat_message_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_geo_point (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1117dd5f: res = fetch_constructor_geo_point_empty (T); break; + case 0x2049d70c: res = fetch_constructor_geo_point (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_point_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_imported_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xd0028438: res = fetch_constructor_imported_contact (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_imported_contact (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_imported_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_app_event (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x770656a8: res = fetch_constructor_input_app_event (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_app_event (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_app_event (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_audio (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xd95adc84: res = fetch_constructor_input_audio_empty (T); break; + case 0x77d440ff: res = fetch_constructor_input_audio (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_audio_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_chat_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1ca48f57: res = fetch_constructor_input_chat_photo_empty (T); break; + case 0x94254732: res = fetch_constructor_input_chat_uploaded_photo (T); break; + case 0xb2e1bf08: res = fetch_constructor_input_chat_photo (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_uploaded_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_chat_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf392b7f4: res = fetch_constructor_input_phone_contact (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_contact (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_phone_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_document (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x72f0eaae: res = fetch_constructor_input_document_empty (T); break; + case 0x18798952: res = fetch_constructor_input_document (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_document_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_encrypted_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf141b5e1: res = fetch_constructor_input_encrypted_chat (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_encrypted_chat (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_encrypted_chat (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_encrypted_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1837c364: res = fetch_constructor_input_encrypted_file_empty (T); break; + case 0x64bd0306: res = fetch_constructor_input_encrypted_file_uploaded (T); break; + case 0x5a17b5e5: res = fetch_constructor_input_encrypted_file (T); break; + case 0x2dc173c8: res = fetch_constructor_input_encrypted_file_big_uploaded (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_uploaded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_big_uploaded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf52ff27f: res = fetch_constructor_input_file (T); break; + case 0xfa4f0bb5: res = fetch_constructor_input_file_big (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_file_big (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file_big (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_file_location (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x14637196: res = fetch_constructor_input_file_location (T); break; + case 0x3d0364ec: res = fetch_constructor_input_video_file_location (T); break; + case 0xf5235d55: res = fetch_constructor_input_encrypted_file_location (T); break; + case 0x74dc404d: res = fetch_constructor_input_audio_file_location (T); break; + case 0x4e45abe9: res = fetch_constructor_input_document_file_location (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_video_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_audio_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_document_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_geo_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x74d456fa: res = fetch_constructor_input_geo_chat (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_geo_chat (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_geo_chat (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_geo_point (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xe4c123d6: res = fetch_constructor_input_geo_point_empty (T); break; + case 0xf3b7acc9: res = fetch_constructor_input_geo_point (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_geo_point_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x9664f57f: res = fetch_constructor_input_media_empty (T); break; + case 0xf7aff1c0: res = fetch_constructor_input_media_uploaded_photo (T); break; + case 0xe9bfb4f3: res = fetch_constructor_input_media_photo (T); break; + case 0xf9c44144: res = fetch_constructor_input_media_geo_point (T); break; + case 0xa6e45987: res = fetch_constructor_input_media_contact (T); break; + case 0xe13fd4bc: res = fetch_constructor_input_media_uploaded_video (T); break; + case 0x96fb97dc: res = fetch_constructor_input_media_uploaded_thumb_video (T); break; + case 0x936a4ebd: res = fetch_constructor_input_media_video (T); break; + case 0x4e498cab: res = fetch_constructor_input_media_uploaded_audio (T); break; + case 0x89938781: res = fetch_constructor_input_media_audio (T); break; + case 0xffe76b78: res = fetch_constructor_input_media_uploaded_document (T); break; + case 0x41481486: res = fetch_constructor_input_media_uploaded_thumb_document (T); break; + case 0xd184e841: res = fetch_constructor_input_media_document (T); break; + case 0x2827a81a: res = fetch_constructor_input_media_venue (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_thumb_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_thumb_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_venue (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_venue (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_notify_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb8bc5b0c: res = fetch_constructor_input_notify_peer (T); break; + case 0x193b4417: res = fetch_constructor_input_notify_users (T); break; + case 0x4a95e84e: res = fetch_constructor_input_notify_chats (T); break; + case 0xa429b886: res = fetch_constructor_input_notify_all (T); break; + case 0x4d8ddec8: res = fetch_constructor_input_notify_geo_chat_peer (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_notify_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_chats (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_chats (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_geo_chat_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x7f3b18ea: res = fetch_constructor_input_peer_empty (T); break; + case 0x7da07ec9: res = fetch_constructor_input_peer_self (T); break; + case 0x1023dbe8: res = fetch_constructor_input_peer_contact (T); break; + case 0x9b447325: res = fetch_constructor_input_peer_foreign (T); break; + case 0x179be863: res = fetch_constructor_input_peer_chat (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_peer_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_self (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_self (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_foreign (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_foreign (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_peer_notify_events (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf03064d8: res = fetch_constructor_input_peer_notify_events_empty (T); break; + case 0xe86a2c74: res = fetch_constructor_input_peer_notify_events_all (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_notify_events_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_notify_events_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_peer_notify_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x46a2ce98: res = fetch_constructor_input_peer_notify_settings (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_peer_notify_settings (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_peer_notify_settings (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1cd7bf0d: res = fetch_constructor_input_photo_empty (T); break; + case 0xfb95c6c4: res = fetch_constructor_input_photo (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_photo_crop (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xade6b004: res = fetch_constructor_input_photo_crop_auto (T); break; + case 0xd9915325: res = fetch_constructor_input_photo_crop (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_photo_crop (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_photo_crop_auto (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_crop_auto (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_photo_crop (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_crop (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_privacy_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x4f96cb18: res = fetch_constructor_input_privacy_key_status_timestamp (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_privacy_key (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_input_privacy_key_status_timestamp (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_input_privacy_rule (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0d09e07b: res = fetch_constructor_input_privacy_value_allow_contacts (T); break; + case 0x184b35ce: res = fetch_constructor_input_privacy_value_allow_all (T); break; + case 0x131cc67f: res = fetch_constructor_input_privacy_value_allow_users (T); break; + case 0x0ba52007: res = fetch_constructor_input_privacy_value_disallow_contacts (T); break; + case 0xd66b66c9: res = fetch_constructor_input_privacy_value_disallow_all (T); break; + case 0x90110467: res = fetch_constructor_input_privacy_value_disallow_users (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xffb62b95: res = fetch_constructor_input_sticker_set_empty (T); break; + case 0x9de7a269: res = fetch_constructor_input_sticker_set_i_d (T); break; + case 0x861cc8a0: res = fetch_constructor_input_sticker_set_short_name (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_sticker_set (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_sticker_set_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_sticker_set_i_d (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_i_d (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_sticker_set_short_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_sticker_set_short_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_user (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb98886cf: res = fetch_constructor_input_user_empty (T); break; + case 0xf7c1b13f: res = fetch_constructor_input_user_self (T); break; + case 0x86e94f65: res = fetch_constructor_input_user_contact (T); break; + case 0x655e74ff: res = fetch_constructor_input_user_foreign (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_user_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_self (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_self (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_foreign (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_foreign (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_input_video (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5508ec75: res = fetch_constructor_input_video_empty (T); break; + case 0xee579652: res = fetch_constructor_input_video (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_input_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_video_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_int (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa8509bda: res = fetch_constructor_int (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_int (struct paramed_type *T) { + if (fetch_constructor_int (T) >= 0) { return 0; } + return -1; +} +int fetch_type_int128 (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x7d36c439: res = fetch_constructor_int128 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_int128 (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_int128 (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_int256 (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf2c798b3: res = fetch_constructor_int256 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_int256 (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_int256 (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_keyboard_button (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa2fa4880: res = fetch_constructor_keyboard_button (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_keyboard_button (struct paramed_type *T) { + if (fetch_constructor_keyboard_button (T) >= 0) { return 0; } + return -1; +} +int fetch_type_keyboard_button_row (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x77608b83: res = fetch_constructor_keyboard_button_row (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_keyboard_button_row (struct paramed_type *T) { + if (fetch_constructor_keyboard_button_row (T) >= 0) { return 0; } + return -1; +} +int fetch_type_long (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x22076cba: res = fetch_constructor_long (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_long (struct paramed_type *T) { + if (fetch_constructor_long (T) >= 0) { return 0; } + return -1; +} +int fetch_type_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x83e5de54: res = fetch_constructor_message_empty (T); break; + case 0xc3060325: res = fetch_constructor_message (T); break; + case 0x1d86f70e: res = fetch_constructor_message_service (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_message_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb6aef7b0: res = fetch_constructor_message_action_empty (T); break; + case 0xa6638b9a: res = fetch_constructor_message_action_chat_create (T); break; + case 0xb5a1ce5a: res = fetch_constructor_message_action_chat_edit_title (T); break; + case 0x7fcb13a8: res = fetch_constructor_message_action_chat_edit_photo (T); break; + case 0x95e3fbef: res = fetch_constructor_message_action_chat_delete_photo (T); break; + case 0x5e3cfc4b: res = fetch_constructor_message_action_chat_add_user (T); break; + case 0xb2ae9b0c: res = fetch_constructor_message_action_chat_delete_user (T); break; + case 0x6f038ebc: res = fetch_constructor_message_action_geo_chat_create (T); break; + case 0x0c7d53de: res = fetch_constructor_message_action_geo_chat_checkin (T); break; + case 0xf89cf5e8: res = fetch_constructor_message_action_chat_joined_by_link (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_message_action_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_edit_title (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_edit_title (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_edit_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_delete_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_add_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_add_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_delete_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_delete_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_geo_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_geo_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_geo_chat_checkin (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_joined_by_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_message_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3ded6320: res = fetch_constructor_message_media_empty (T); break; + case 0x3d8ce53d: res = fetch_constructor_message_media_photo (T); break; + case 0x5bcf1675: res = fetch_constructor_message_media_video (T); break; + case 0x56e0d474: res = fetch_constructor_message_media_geo (T); break; + case 0x5e7d2f39: res = fetch_constructor_message_media_contact (T); break; + case 0x9f84f49e: res = fetch_constructor_message_media_unsupported (T); break; + case 0x2fda2204: res = fetch_constructor_message_media_document (T); break; + case 0xc6b68300: res = fetch_constructor_message_media_audio (T); break; + case 0xa32dd600: res = fetch_constructor_message_media_web_page (T); break; + case 0x7912b71f: res = fetch_constructor_message_media_venue (T); break; + case 0xc8c45a2a: res = fetch_constructor_message_media_photo_l27 (T); break; + case 0xa2d24290: res = fetch_constructor_message_media_video_l27 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_geo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_geo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_unsupported (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_unsupported (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_web_page (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_venue (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_venue (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_photo_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_video_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_video_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_filter (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x57e2f66c: res = fetch_constructor_input_messages_filter_empty (T); break; + case 0x9609a51c: res = fetch_constructor_input_messages_filter_photos (T); break; + case 0x9fc00e65: res = fetch_constructor_input_messages_filter_video (T); break; + case 0x56e9f0e4: res = fetch_constructor_input_messages_filter_photo_video (T); break; + case 0xd95e73bb: res = fetch_constructor_input_messages_filter_photo_video_documents (T); break; + case 0x9eddf188: res = fetch_constructor_input_messages_filter_document (T); break; + case 0xcfc87522: res = fetch_constructor_input_messages_filter_audio (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_filter (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_input_messages_filter_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photos (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photos (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photo_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photo_video_documents (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photo_video_documents (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_nearest_dc (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x8e1a1775: res = fetch_constructor_nearest_dc (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_nearest_dc (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_nearest_dc (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_notify_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x9fd40bd8: res = fetch_constructor_notify_peer (T); break; + case 0xb4c83b4c: res = fetch_constructor_notify_users (T); break; + case 0xc007cec3: res = fetch_constructor_notify_chats (T); break; + case 0x74d07c60: res = fetch_constructor_notify_all (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_notify_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_chats (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_chats (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_null (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x56730bcc: res = fetch_constructor_null (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_null (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_null (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_p_q_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x83c95aec: res = fetch_constructor_p_q_inner_data (T); break; + case 0x3c6a84d4: res = fetch_constructor_p_q_inner_data_temp (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_p_q_inner_data (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_p_q_inner_data (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_p_q_inner_data (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_p_q_inner_data_temp (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_p_q_inner_data_temp (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x9db1bc6d: res = fetch_constructor_peer_user (T); break; + case 0xbad0e5bb: res = fetch_constructor_peer_chat (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_peer_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_peer_notify_events (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xadd53cb3: res = fetch_constructor_peer_notify_events_empty (T); break; + case 0x6d1ded88: res = fetch_constructor_peer_notify_events_all (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_events_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_events_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_peer_notify_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x70a68512: res = fetch_constructor_peer_notify_settings_empty (T); break; + case 0x8d5e11ee: res = fetch_constructor_peer_notify_settings (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_peer_notify_settings (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_peer_notify_settings_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_settings_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_notify_settings (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_settings (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x2331b22d: res = fetch_constructor_photo_empty (T); break; + case 0xc3838076: res = fetch_constructor_photo (T); break; + case 0x22b56751: res = fetch_constructor_photo_l27 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_photo_size (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0e17e23c: res = fetch_constructor_photo_size_empty (T); break; + case 0x77bfb61b: res = fetch_constructor_photo_size (T); break; + case 0xe9a734fa: res = fetch_constructor_photo_cached_size (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_photo_size (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_photo_size_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_size_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_cached_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_cached_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_privacy_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xbc2eab30: res = fetch_constructor_privacy_key_status_timestamp (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_privacy_key (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_privacy_key_status_timestamp (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_privacy_rule (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xfffe1bac: res = fetch_constructor_privacy_value_allow_contacts (T); break; + case 0x65427b82: res = fetch_constructor_privacy_value_allow_all (T); break; + case 0x4d5bbe0c: res = fetch_constructor_privacy_value_allow_users (T); break; + case 0xf888fa1a: res = fetch_constructor_privacy_value_disallow_contacts (T); break; + case 0x8b73e763: res = fetch_constructor_privacy_value_disallow_all (T); break; + case 0x0c7f49b7: res = fetch_constructor_privacy_value_disallow_users (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_received_notify_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa384b779: res = fetch_constructor_received_notify_message (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_received_notify_message (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_received_notify_message (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_reply_markup (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa03e5b85: res = fetch_constructor_reply_keyboard_hide (T); break; + case 0xf4108aa0: res = fetch_constructor_reply_keyboard_force_reply (T); break; + case 0x3502758c: res = fetch_constructor_reply_keyboard_markup (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_reply_markup (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_reply_keyboard_hide (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_hide (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_force_reply (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_reply_keyboard_markup (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_reply_keyboard_markup (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_res_p_q (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x05162463: res = fetch_constructor_res_p_q (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_res_p_q (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_res_p_q (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_send_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x16bf744e: res = fetch_constructor_send_message_typing_action (T); break; + case 0xfd5ec8f5: res = fetch_constructor_send_message_cancel_action (T); break; + case 0xa187d66f: res = fetch_constructor_send_message_record_video_action (T); break; + case 0x92042ff7: res = fetch_constructor_send_message_upload_video_action_l27 (T); break; + case 0xe9763aec: res = fetch_constructor_send_message_upload_video_action (T); break; + case 0xd52f73f7: res = fetch_constructor_send_message_record_audio_action (T); break; + case 0xe6ac8a6f: res = fetch_constructor_send_message_upload_audio_action_l27 (T); break; + case 0xf351d7ab: res = fetch_constructor_send_message_upload_audio_action (T); break; + case 0xd1d34a26: res = fetch_constructor_send_message_upload_photo_action (T); break; + case 0x8faee98e: res = fetch_constructor_send_message_upload_document_action_l27 (T); break; + case 0xaa0cd9e4: res = fetch_constructor_send_message_upload_document_action (T); break; + case 0x176f8ba1: res = fetch_constructor_send_message_geo_location_action (T); break; + case 0x628cbc6f: res = fetch_constructor_send_message_choose_contact_action (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_send_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_send_message_typing_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_typing_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_cancel_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_cancel_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_record_video_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_record_video_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_video_action_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_video_action_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_video_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_video_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_record_audio_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_record_audio_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_audio_action_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_audio_action_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_audio_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_audio_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_photo_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_photo_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_document_action_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_document_action_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_document_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_document_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_geo_location_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_geo_location_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_choose_contact_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_choose_contact_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_server_d_h_params (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x79cb045d: res = fetch_constructor_server_d_h_params_fail (T); break; + case 0xd0e8075c: res = fetch_constructor_server_d_h_params_ok (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_server_d_h_params (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_server_d_h_params_fail (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_server_d_h_params_fail (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_server_d_h_params_ok (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_server_d_h_params_ok (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_server_d_h_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb5890dba: res = fetch_constructor_server_d_h_inner_data (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_server_d_h_inner_data (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_server_d_h_inner_data (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_set_client_d_h_params_answer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3bcbf734: res = fetch_constructor_dh_gen_ok (T); break; + case 0x46dc1fb9: res = fetch_constructor_dh_gen_retry (T); break; + case 0xa69dae02: res = fetch_constructor_dh_gen_fail (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_set_client_d_h_params_answer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_dh_gen_ok (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_ok (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dh_gen_retry (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_retry (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dh_gen_fail (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_fail (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_sticker_pack (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x12b299d4: res = fetch_constructor_sticker_pack (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_sticker_pack (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_sticker_pack (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa7a43b17: res = fetch_constructor_sticker_set (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_sticker_set (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_sticker_set (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_string (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb5286e24: res = fetch_constructor_string (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_string (struct paramed_type *T) { + if (fetch_constructor_string (T) >= 0) { return 0; } + return -1; +} +int fetch_type_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1f2b0afd: res = fetch_constructor_update_new_message (T); break; + case 0x4e90bfd6: res = fetch_constructor_update_message_i_d (T); break; + case 0xa20db0e5: res = fetch_constructor_update_delete_messages (T); break; + case 0x5c486927: res = fetch_constructor_update_user_typing (T); break; + case 0x9a65ea1f: res = fetch_constructor_update_chat_user_typing (T); break; + case 0x07761198: res = fetch_constructor_update_chat_participants (T); break; + case 0x1bfbd823: res = fetch_constructor_update_user_status (T); break; + case 0xa7332b73: res = fetch_constructor_update_user_name (T); break; + case 0x95313b0c: res = fetch_constructor_update_user_photo (T); break; + case 0x2575bbb9: res = fetch_constructor_update_contact_registered (T); break; + case 0x9d2e67c5: res = fetch_constructor_update_contact_link (T); break; + case 0x8f06529a: res = fetch_constructor_update_new_authorization (T); break; + case 0x5a68e3f7: res = fetch_constructor_update_new_geo_chat_message (T); break; + case 0x12bcbd9a: res = fetch_constructor_update_new_encrypted_message (T); break; + case 0x1710f156: res = fetch_constructor_update_encrypted_chat_typing (T); break; + case 0xb4a2e88d: res = fetch_constructor_update_encryption (T); break; + case 0x38fe25b7: res = fetch_constructor_update_encrypted_messages_read (T); break; + case 0x3a0eeb22: res = fetch_constructor_update_chat_participant_add (T); break; + case 0x6e5f8c22: res = fetch_constructor_update_chat_participant_delete (T); break; + case 0x8e5e9873: res = fetch_constructor_update_dc_options (T); break; + case 0x80ece81a: res = fetch_constructor_update_user_blocked (T); break; + case 0xbec268ef: res = fetch_constructor_update_notify_settings (T); break; + case 0x382dd3e4: res = fetch_constructor_update_service_notification (T); break; + case 0xee3b272a: res = fetch_constructor_update_privacy (T); break; + case 0x12b9417b: res = fetch_constructor_update_user_phone (T); break; + case 0x9961fd5c: res = fetch_constructor_update_read_history_inbox (T); break; + case 0x2f2f21bf: res = fetch_constructor_update_read_history_outbox (T); break; + case 0x2cc36971: res = fetch_constructor_update_web_page (T); break; + case 0x68c13933: res = fetch_constructor_update_read_messages_contents (T); break; + case 0x03114739: res = fetch_constructor_update_msg_update (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_update_new_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_message_i_d (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_message_i_d (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_delete_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_delete_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_user_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_user_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participants (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participants (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_status (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_status (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_contact_registered (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_contact_registered (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_contact_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_contact_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_authorization (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_authorization (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_geo_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encrypted_chat_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encryption (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encryption (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encrypted_messages_read (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encrypted_messages_read (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participant_add (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participant_add (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participant_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participant_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_dc_options (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_dc_options (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_blocked (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_blocked (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_notify_settings (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_notify_settings (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_service_notification (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_service_notification (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_privacy (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_privacy (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_phone (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_phone (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_history_inbox (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_history_inbox (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_history_outbox (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_history_outbox (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_web_page (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_messages_contents (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_messages_contents (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_msg_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_msg_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_updates (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xe317af7e: res = fetch_constructor_updates_too_long (T); break; + case 0xed5c2127: res = fetch_constructor_update_short_message (T); break; + case 0x52238b3c: res = fetch_constructor_update_short_chat_message (T); break; + case 0x78d4dec1: res = fetch_constructor_update_short (T); break; + case 0x725b04c3: res = fetch_constructor_updates_combined (T); break; + case 0x74ae4240: res = fetch_constructor_updates (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_updates (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_updates_too_long (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_too_long (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_combined (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_combined (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_user (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x200250ba: res = fetch_constructor_user_empty (T); break; + case 0x22e49072: res = fetch_constructor_user (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_user_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_user_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5a89ac5b: res = fetch_constructor_user_full (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_user_full (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_user_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_user_profile_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x4f11bae1: res = fetch_constructor_user_profile_photo_empty (T); break; + case 0xd559d8c8: res = fetch_constructor_user_profile_photo (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_user_profile_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_user_profile_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_profile_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_profile_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_profile_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_user_status (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x09d05049: res = fetch_constructor_user_status_empty (T); break; + case 0xedb93949: res = fetch_constructor_user_status_online (T); break; + case 0x008c703f: res = fetch_constructor_user_status_offline (T); break; + case 0xe26f42f1: res = fetch_constructor_user_status_recently (T); break; + case 0x07bf09fc: res = fetch_constructor_user_status_last_week (T); break; + case 0x77ebc742: res = fetch_constructor_user_status_last_month (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_user_status (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_user_status_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_online (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_online (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_offline (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_offline (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_recently (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_recently (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_last_week (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_last_week (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_last_month (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_last_month (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_vector (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1cb5c415: res = fetch_constructor_vector (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_vector (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_vector (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_video (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc10658a8: res = fetch_constructor_video_empty (T); break; + case 0xee9f4a4d: res = fetch_constructor_video (T); break; + case 0x388fa391: res = fetch_constructor_video_l27 (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_video_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_video_l27 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video_l27 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_wall_paper (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xccb03657: res = fetch_constructor_wall_paper (T); break; + case 0x63117f24: res = fetch_constructor_wall_paper_solid (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_wall_paper (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_wall_paper (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_wall_paper (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_wall_paper_solid (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_wall_paper_solid (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_web_page (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xeb1477e8: res = fetch_constructor_web_page_empty (T); break; + case 0xc586da1c: res = fetch_constructor_web_page_pending (T); break; + case 0xa31ea0b5: res = fetch_constructor_web_page (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_web_page (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_web_page_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_web_page_pending (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page_pending (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_web_page (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_web_page (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_account_authorizations (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1250abde: res = fetch_constructor_account_authorizations (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_account_authorizations (struct paramed_type *T) { + if (fetch_constructor_account_authorizations (T) >= 0) { return 0; } + return -1; +} +int fetch_type_account_password (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x96dabc18: res = fetch_constructor_account_no_password (T); break; + case 0x7c18141c: res = fetch_constructor_account_password (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_account_password (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_account_no_password (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_account_no_password (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_account_password (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_account_password (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_account_password_input_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xbcfc532c: res = fetch_constructor_account_password_input_settings (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_account_password_input_settings (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_account_password_input_settings (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_account_password_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb7b72ab3: res = fetch_constructor_account_password_settings (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_account_password_settings (struct paramed_type *T) { + if (fetch_constructor_account_password_settings (T) >= 0) { return 0; } + return -1; +} +int fetch_type_account_privacy_rules (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x554abb6f: res = fetch_constructor_account_privacy_rules (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_account_privacy_rules (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_account_privacy_rules (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_account_sent_change_phone_code (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa4f58c4c: res = fetch_constructor_account_sent_change_phone_code (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_account_sent_change_phone_code (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_account_sent_change_phone_code (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_auth_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xff036af1: res = fetch_constructor_auth_authorization (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_auth_authorization (struct paramed_type *T) { + if (fetch_constructor_auth_authorization (T) >= 0) { return 0; } + return -1; +} +int fetch_type_auth_checked_phone (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x811ea28e: res = fetch_constructor_auth_checked_phone (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_auth_checked_phone (struct paramed_type *T) { + if (fetch_constructor_auth_checked_phone (T) >= 0) { return 0; } + return -1; +} +int fetch_type_auth_exported_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xdf969c2d: res = fetch_constructor_auth_exported_authorization (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_auth_exported_authorization (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_auth_exported_authorization (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_auth_password_recovery (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x137948a5: res = fetch_constructor_auth_password_recovery (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_auth_password_recovery (struct paramed_type *T) { + if (fetch_constructor_auth_password_recovery (T) >= 0) { return 0; } + return -1; +} +int fetch_type_auth_sent_code (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xefed51d9: res = fetch_constructor_auth_sent_code (T); break; + case 0xe325edcf: res = fetch_constructor_auth_sent_app_code (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_auth_sent_code (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_auth_sent_code (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_auth_sent_code (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_auth_sent_app_code (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_auth_sent_app_code (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_binlog_encr_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0377168f: res = fetch_constructor_binlog_encr_key (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_binlog_encr_key (struct paramed_type *T) { + if (fetch_constructor_binlog_encr_key (T) >= 0) { return 0; } + return -1; +} +int fetch_type_binlog_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3b06de69: res = fetch_constructor_binlog_start (T); break; + case 0xf96feb32: res = fetch_constructor_binlog_dc_option (T); break; + case 0x7c0d22d8: res = fetch_constructor_binlog_dc_option_new (T); break; + case 0x71e8c156: res = fetch_constructor_binlog_auth_key (T); break; + case 0x9e83dbdc: res = fetch_constructor_binlog_default_dc (T); break; + case 0x26451bb5: res = fetch_constructor_binlog_dc_signed (T); break; + case 0x68a870e8: res = fetch_constructor_binlog_our_id (T); break; + case 0xeaeb7826: res = fetch_constructor_binlog_set_dh_params (T); break; + case 0x2ca8c939: res = fetch_constructor_binlog_set_pts (T); break; + case 0xd95738ac: res = fetch_constructor_binlog_set_qts (T); break; + case 0x1d0f4b52: res = fetch_constructor_binlog_set_date (T); break; + case 0x6eeb2989: res = fetch_constructor_binlog_set_seq (T); break; + case 0xee1b38e8: res = fetch_constructor_binlog_encr_chat_delete (T); break; + case 0x84977251: res = fetch_constructor_binlog_encr_chat_new (T); break; + case 0x9d49488d: res = fetch_constructor_binlog_encr_chat_exchange_new (T); break; + case 0xac55d447: res = fetch_constructor_binlog_user_delete (T); break; + case 0x127cf2f9: res = fetch_constructor_binlog_user_new (T); break; + case 0x0a10aa92: res = fetch_constructor_binlog_chat_new (T); break; + case 0x535475ea: res = fetch_constructor_binlog_chat_add_participant (T); break; + case 0x7dd1a1a2: res = fetch_constructor_binlog_chat_del_participant (T); break; + case 0x3c873416: res = fetch_constructor_binlog_set_msg_id (T); break; + case 0x847e77b1: res = fetch_constructor_binlog_message_delete (T); break; + case 0x427cfcdb: res = fetch_constructor_binlog_message_new (T); break; + case 0x6cf7cabc: res = fetch_constructor_binlog_message_encr_new (T); break; + case 0x6dd4d85f: res = fetch_constructor_binlog_msg_update (T); break; + case 0x83327955: res = fetch_constructor_binlog_reset_authorization (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_binlog_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_binlog_start (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_start (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_option (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_option (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_option_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_option_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_auth_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_auth_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_default_dc (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_default_dc (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_signed (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_signed (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_our_id (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_our_id (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_dh_params (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_dh_params (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_pts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_pts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_qts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_qts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_date (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_date (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_seq (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_seq (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_exchange_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_user_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_user_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_add_participant (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_add_participant (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_del_participant (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_del_participant (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_msg_id (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_msg_id (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_encr_new (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_encr_new (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_msg_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_msg_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_reset_authorization (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_reset_authorization (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_contacts_blocked (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x1c138d15: res = fetch_constructor_contacts_blocked (T); break; + case 0x900802a1: res = fetch_constructor_contacts_blocked_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_blocked (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_contacts_blocked (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_blocked (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contacts_blocked_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_blocked_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_contacts_contacts (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb74ba9d2: res = fetch_constructor_contacts_contacts_not_modified (T); break; + case 0x6f8b8cb2: res = fetch_constructor_contacts_contacts (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_contacts (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_contacts_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contacts_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_contacts_found (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x0566000e: res = fetch_constructor_contacts_found (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_found (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contacts_found (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contacts_imported_contacts (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xad524315: res = fetch_constructor_contacts_imported_contacts (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_imported_contacts (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contacts_imported_contacts (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contacts_link (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3ace484c: res = fetch_constructor_contacts_link (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_link (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contacts_link (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_contacts_suggested (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5649dcc5: res = fetch_constructor_contacts_suggested (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_contacts_suggested (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_contacts_suggested (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_geochats_located (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x48feb267: res = fetch_constructor_geochats_located (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_geochats_located (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_geochats_located (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_geochats_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xd1526db1: res = fetch_constructor_geochats_messages (T); break; + case 0xbc5863e8: res = fetch_constructor_geochats_messages_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_geochats_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_geochats_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geochats_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geochats_messages_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geochats_messages_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_geochats_stated_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x17b1578b: res = fetch_constructor_geochats_stated_message (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_geochats_stated_message (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_geochats_stated_message (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_help_app_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x8987f311: res = fetch_constructor_help_app_update (T); break; + case 0xc45a6536: res = fetch_constructor_help_no_app_update (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_help_app_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_help_app_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_help_app_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_help_no_app_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_help_no_app_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_help_invite_text (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x18cb9f78: res = fetch_constructor_help_invite_text (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_help_invite_text (struct paramed_type *T) { + if (fetch_constructor_help_invite_text (T) >= 0) { return 0; } + return -1; +} +int fetch_type_help_support (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x17c6b5f6: res = fetch_constructor_help_support (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_help_support (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_help_support (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_affected_history (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb45c69d1: res = fetch_constructor_messages_affected_history (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_affected_history (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_messages_affected_history (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_affected_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x84d19185: res = fetch_constructor_messages_affected_messages (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_affected_messages (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_messages_affected_messages (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_all_stickers (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xe86602c3: res = fetch_constructor_messages_all_stickers_not_modified (T); break; + case 0x5ce352ec: res = fetch_constructor_messages_all_stickers (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_all_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_all_stickers_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_all_stickers (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_all_stickers (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_chat_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xe5d7d19c: res = fetch_constructor_messages_chat_full (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_chat_full (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_messages_chat_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_chats (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x64ff9fd5: res = fetch_constructor_messages_chats (T); break; + default: return -1; + } + return res; +} +int fetch_type_bare_messages_chats (struct paramed_type *T) { + if (fetch_constructor_messages_chats (T) >= 0) { return 0; } + return -1; +} +int fetch_type_messages_dh_config (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xc0e24635: res = fetch_constructor_messages_dh_config_not_modified (T); break; + case 0x2c221edd: res = fetch_constructor_messages_dh_config (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_dh_config (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dh_config_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_dh_config (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dh_config (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_dialogs (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x15ba6c40: res = fetch_constructor_messages_dialogs (T); break; + case 0x71e094f3: res = fetch_constructor_messages_dialogs_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_dialogs (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_dialogs (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dialogs (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_dialogs_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dialogs_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x3f4e0648: res = fetch_constructor_messages_message_empty (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_message (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_messages_message_empty (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x8c718e87: res = fetch_constructor_messages_messages (T); break; + case 0x0b446ae3: res = fetch_constructor_messages_messages_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_messages_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_messages_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_sent_encrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x560f8935: res = fetch_constructor_messages_sent_encrypted_message (T); break; + case 0x9493ff32: res = fetch_constructor_messages_sent_encrypted_file (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_sent_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_sent_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x4c3d47f3: res = fetch_constructor_messages_sent_message (T); break; + case 0x35a1a663: res = fetch_constructor_messages_sent_message_link (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_sent_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_sent_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_sent_message_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_message_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_messages_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xb60a24a6: res = fetch_constructor_messages_sticker_set (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_sticker_set (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_messages_sticker_set (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_messages_stickers (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xf1749a22: res = fetch_constructor_messages_stickers_not_modified (T); break; + case 0x8a8ecd32: res = fetch_constructor_messages_stickers (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_messages_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_messages_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stickers_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_stickers (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stickers (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_photos_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x20212ca8: res = fetch_constructor_photos_photo (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_photos_photo (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_photos_photo (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_photos_photos (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x8dca6aa5: res = fetch_constructor_photos_photos (T); break; + case 0x15051f54: res = fetch_constructor_photos_photos_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_photos_photos (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_photos_photos (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photos_photos (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photos_photos_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photos_photos_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_storage_file_type (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xaa963b05: res = fetch_constructor_storage_file_unknown (T); break; + case 0x007efe0e: res = fetch_constructor_storage_file_jpeg (T); break; + case 0xcae1aadf: res = fetch_constructor_storage_file_gif (T); break; + case 0x0a4f63c0: res = fetch_constructor_storage_file_png (T); break; + case 0xae1e508d: res = fetch_constructor_storage_file_pdf (T); break; + case 0x528a0677: res = fetch_constructor_storage_file_mp3 (T); break; + case 0x4b09ebbc: res = fetch_constructor_storage_file_mov (T); break; + case 0x40bc6f52: res = fetch_constructor_storage_file_partial (T); break; + case 0xb3cea0e4: res = fetch_constructor_storage_file_mp4 (T); break; + case 0x1081464c: res = fetch_constructor_storage_file_webp (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_storage_file_type (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_storage_file_unknown (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_unknown (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_jpeg (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_jpeg (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_gif (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_gif (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_png (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_png (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_pdf (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_pdf (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mp3 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mp3 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mov (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mov (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_partial (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_partial (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mp4 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mp4 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_webp (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_webp (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_updates_difference (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x5d75a138: res = fetch_constructor_updates_difference_empty (T); break; + case 0x00f49ca0: res = fetch_constructor_updates_difference (T); break; + case 0xa8fb1981: res = fetch_constructor_updates_difference_slice (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_updates_difference (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + if (skip_constructor_updates_difference_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_difference (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_difference_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + in_ptr = save_in_ptr; + return -1; +} +int fetch_type_updates_state (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0xa56c2a3e: res = fetch_constructor_updates_state (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_updates_state (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_updates_state (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_upload_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + int magic = fetch_int (); + int res = -1; + switch (magic) { + case 0x096a18d5: res = fetch_constructor_upload_file (T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int fetch_type_bare_upload_file (struct paramed_type *T) { + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + if (fetch_constructor_upload_file (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; } + return -1; +} +int fetch_type_any (struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return fetch_type_account_days_t_t_l (T); + case 0x472f5020: return fetch_type_bare_account_days_t_t_l (T); + case 0x9fc5ec4e: return fetch_type_audio (T); + case 0x603a13b1: return fetch_type_bare_audio (T); + case 0x7bf2e6f6: return fetch_type_authorization (T); + case 0x840d1909: return fetch_type_bare_authorization (T); + case 0x250be282: return fetch_type_bool (T); + case 0xdaf41d7d: return fetch_type_bare_bool (T); + case 0x75e7ea6c: return fetch_type_bot_command (T); + case 0x8a181593: return fetch_type_bare_bot_command (T); + case 0xb2e16f93: return fetch_type_bot_info (T); + case 0x4d1e906c: return fetch_type_bare_bot_info (T); + case 0x0ee1379f: return fetch_type_bytes (T); + case 0xf11ec860: return fetch_type_bare_bytes (T); + case 0x7bd865dc: return fetch_type_chat (T); + case 0x84279a23: return fetch_type_bare_chat (T); + case 0x2e02a614: return fetch_type_chat_full (T); + case 0xd1fd59eb: return fetch_type_bare_chat_full (T); + case 0x94f910b1: return fetch_type_chat_invite (T); + case 0x6b06ef4e: return fetch_type_bare_chat_invite (T); + case 0x3631cf4c: return fetch_type_chat_located (T); + case 0xc9ce30b3: return fetch_type_bare_chat_located (T); + case 0xc8d7493e: return fetch_type_chat_participant (T); + case 0x3728b6c1: return fetch_type_bare_chat_participant (T); + case 0x77930f9f: return fetch_type_chat_participants (T); + case 0x886cf060: return fetch_type_bare_chat_participants (T); + case 0x56922676: return fetch_type_chat_photo (T); + case 0xa96dd989: return fetch_type_bare_chat_photo (T); + case 0x6643b654: return fetch_type_client_d_h_inner_data (T); + case 0x99bc49ab: return fetch_type_bare_client_d_h_inner_data (T); + case 0x4e32b894: return fetch_type_config (T); + case 0xb1cd476b: return fetch_type_bare_config (T); + case 0xf911c994: return fetch_type_contact (T); + case 0x06ee366b: return fetch_type_bare_contact (T); + case 0x561bc879: return fetch_type_contact_blocked (T); + case 0xa9e43786: return fetch_type_bare_contact_blocked (T); + case 0xea879f95: return fetch_type_contact_found (T); + case 0x1578606a: return fetch_type_bare_contact_found (T); + case 0x522fbc63: return fetch_type_contact_link (T); + case 0xadd0439c: return fetch_type_bare_contact_link (T); + case 0xd3680c61: return fetch_type_contact_status (T); + case 0x2c97f39e: return fetch_type_bare_contact_status (T); + case 0x3de191a1: return fetch_type_contact_suggested (T); + case 0xc21e6e5e: return fetch_type_bare_contact_suggested (T); + case 0x2b1a62f0: return fetch_type_dc_option (T); + case 0xd4e59d0f: return fetch_type_bare_dc_option (T); + case 0x535b7918: return fetch_type_decrypted_message (T); + case 0xaca486e7: return fetch_type_bare_decrypted_message (T); + case 0x4e0eefde: return fetch_type_decrypted_message_action (T); + case 0xb1f11021: return fetch_type_bare_decrypted_message_action (T); + case 0x1be31789: return fetch_type_decrypted_message_layer (T); + case 0xe41ce876: return fetch_type_bare_decrypted_message_layer (T); + case 0x34e0d674: return fetch_type_decrypted_message_media (T); + case 0xcb1f298b: return fetch_type_bare_decrypted_message_media (T); + case 0xc1dd804a: return fetch_type_dialog (T); + case 0x3e227fb5: return fetch_type_bare_dialog (T); + case 0xae636f24: return fetch_type_disabled_feature (T); + case 0x519c90db: return fetch_type_bare_disabled_feature (T); + case 0x51a73418: return fetch_type_document (T); + case 0xae58cbe7: return fetch_type_bare_document (T); + case 0x97c637a3: return fetch_type_document_attribute (T); + case 0x6839c85c: return fetch_type_bare_document_attribute (T); + case 0x2210c154: return fetch_type_double (T); + case 0xddef3eab: return fetch_type_bare_double (T); + case 0xb1718213: return fetch_type_encrypted_chat (T); + case 0x4e8e7dec: return fetch_type_bare_encrypted_chat (T); + case 0x886fd032: return fetch_type_encrypted_file (T); + case 0x77902fcd: return fetch_type_bare_encrypted_file (T); + case 0xce6b8a1e: return fetch_type_encrypted_message (T); + case 0x319475e1: return fetch_type_bare_encrypted_message (T); + case 0xc4b9f9bb: return fetch_type_error (T); + case 0x3b460644: return fetch_type_bare_error (T); + case 0x95f132d5: return fetch_type_exported_chat_invite (T); + case 0x6a0ecd2a: return fetch_type_bare_exported_chat_invite (T); + case 0x2f8ffb30: return fetch_type_file_location (T); + case 0xd07004cf: return fetch_type_bare_file_location (T); + case 0xf67b4034: return fetch_type_geo_chat_message (T); + case 0x0984bfcb: return fetch_type_bare_geo_chat_message (T); + case 0x315e0a53: return fetch_type_geo_point (T); + case 0xcea1f5ac: return fetch_type_bare_geo_point (T); + case 0xd0028438: return fetch_type_imported_contact (T); + case 0x2ffd7bc7: return fetch_type_bare_imported_contact (T); + case 0x770656a8: return fetch_type_input_app_event (T); + case 0x88f9a957: return fetch_type_bare_input_app_event (T); + case 0xae8e9c7b: return fetch_type_input_audio (T); + case 0x51716384: return fetch_type_bare_input_audio (T); + case 0x3a60776d: return fetch_type_input_chat_photo (T); + case 0xc59f8892: return fetch_type_bare_input_chat_photo (T); + case 0xf392b7f4: return fetch_type_input_contact (T); + case 0x0c6d480b: return fetch_type_bare_input_contact (T); + case 0x6a8963fc: return fetch_type_input_document (T); + case 0x95769c03: return fetch_type_bare_input_document (T); + case 0xf141b5e1: return fetch_type_input_encrypted_chat (T); + case 0x0ebe4a1e: return fetch_type_bare_input_encrypted_chat (T); + case 0x0b5c064f: return fetch_type_input_encrypted_file (T); + case 0xf4a3f9b0: return fetch_type_bare_input_encrypted_file (T); + case 0x0f60f9ca: return fetch_type_input_file (T); + case 0xf09f0635: return fetch_type_bare_input_file (T); + case 0xe6daa38b: return fetch_type_input_file_location (T); + case 0x19255c74: return fetch_type_bare_input_file_location (T); + case 0x74d456fa: return fetch_type_input_geo_chat (T); + case 0x8b2ba905: return fetch_type_bare_input_geo_chat (T); + case 0x17768f1f: return fetch_type_input_geo_point (T); + case 0xe88970e0: return fetch_type_bare_input_geo_point (T); + case 0xb32c91dd: return fetch_type_input_media (T); + case 0x4cd36e22: return fetch_type_bare_input_media (T); + case 0x02b6911b: return fetch_type_input_notify_peer (T); + case 0xfd496ee4: return fetch_type_bare_input_notify_peer (T); + case 0x9e67268d: return fetch_type_input_peer (T); + case 0x6198d972: return fetch_type_bare_input_peer (T); + case 0x185a48ac: return fetch_type_input_peer_notify_events (T); + case 0xe7a5b753: return fetch_type_bare_input_peer_notify_events (T); + case 0x46a2ce98: return fetch_type_input_peer_notify_settings (T); + case 0xb95d3167: return fetch_type_bare_input_peer_notify_settings (T); + case 0xe74279c9: return fetch_type_input_photo (T); + case 0x18bd8636: return fetch_type_bare_input_photo (T); + case 0x7477e321: return fetch_type_input_photo_crop (T); + case 0x8b881cde: return fetch_type_bare_input_photo_crop (T); + case 0x4f96cb18: return fetch_type_input_privacy_key (T); + case 0xb06934e7: return fetch_type_bare_input_privacy_key (T); + case 0x4b815163: return fetch_type_input_privacy_rule (T); + case 0xb47eae9c: return fetch_type_bare_input_privacy_rule (T); + case 0xe44d415c: return fetch_type_input_sticker_set (T); + case 0x1bb2bea3: return fetch_type_bare_input_sticker_set (T); + case 0xadfe0c6a: return fetch_type_input_user (T); + case 0x5201f395: return fetch_type_bare_input_user (T); + case 0xbb5f7a27: return fetch_type_input_video (T); + case 0x44a085d8: return fetch_type_bare_input_video (T); + case 0xa8509bda: return fetch_type_int (T); + case 0x57af6425: return fetch_type_bare_int (T); + case 0x7d36c439: return fetch_type_int128 (T); + case 0x82c93bc6: return fetch_type_bare_int128 (T); + case 0xf2c798b3: return fetch_type_int256 (T); + case 0x0d38674c: return fetch_type_bare_int256 (T); + case 0xa2fa4880: return fetch_type_keyboard_button (T); + case 0x5d05b77f: return fetch_type_bare_keyboard_button (T); + case 0x77608b83: return fetch_type_keyboard_button_row (T); + case 0x889f747c: return fetch_type_bare_keyboard_button_row (T); + case 0x22076cba: return fetch_type_long (T); + case 0xddf89345: return fetch_type_bare_long (T); + case 0x5d652a7f: return fetch_type_message (T); + case 0xa29ad580: return fetch_type_bare_message (T); + case 0x383415fa: return fetch_type_message_action (T); + case 0xc7cbea05: return fetch_type_bare_message_action (T); + case 0x95f2471a: return fetch_type_message_media (T); + case 0x6a0db8e5: return fetch_type_bare_message_media (T); + case 0x80895ae0: return fetch_type_messages_filter (T); + case 0x7f76a51f: return fetch_type_bare_messages_filter (T); + case 0x8e1a1775: return fetch_type_nearest_dc (T); + case 0x71e5e88a: return fetch_type_bare_nearest_dc (T); + case 0x9fcb8237: return fetch_type_notify_peer (T); + case 0x60347dc8: return fetch_type_bare_notify_peer (T); + case 0x56730bcc: return fetch_type_null (T); + case 0xa98cf433: return fetch_type_bare_null (T); + case 0xbfa3de38: return fetch_type_p_q_inner_data (T); + case 0x405c21c7: return fetch_type_bare_p_q_inner_data (T); + case 0x276159d6: return fetch_type_peer (T); + case 0xd89ea629: return fetch_type_bare_peer (T); + case 0xc0c8d13b: return fetch_type_peer_notify_events (T); + case 0x3f372ec4: return fetch_type_bare_peer_notify_events (T); + case 0xfdf894fc: return fetch_type_peer_notify_settings (T); + case 0x02076b03: return fetch_type_bare_peer_notify_settings (T); + case 0xc207550a: return fetch_type_photo (T); + case 0x3df8aaf5: return fetch_type_bare_photo (T); + case 0x900f60dd: return fetch_type_photo_size (T); + case 0x6ff09f22: return fetch_type_bare_photo_size (T); + case 0xbc2eab30: return fetch_type_privacy_key (T); + case 0x43d154cf: return fetch_type_bare_privacy_key (T); + case 0xa8638aec: return fetch_type_privacy_rule (T); + case 0x579c7513: return fetch_type_bare_privacy_rule (T); + case 0xa384b779: return fetch_type_received_notify_message (T); + case 0x5c7b4886: return fetch_type_bare_received_notify_message (T); + case 0x612ca4a9: return fetch_type_reply_markup (T); + case 0x9ed35b56: return fetch_type_bare_reply_markup (T); + case 0x05162463: return fetch_type_res_p_q (T); + case 0xfae9db9c: return fetch_type_bare_res_p_q (T); + case 0x70541c7e: return fetch_type_send_message_action (T); + case 0x8fabe381: return fetch_type_bare_send_message_action (T); + case 0xa9230301: return fetch_type_server_d_h_params (T); + case 0x56dcfcfe: return fetch_type_bare_server_d_h_params (T); + case 0xb5890dba: return fetch_type_server_d_h_inner_data (T); + case 0x4a76f245: return fetch_type_bare_server_d_h_inner_data (T); + case 0xdb8a468f: return fetch_type_set_client_d_h_params_answer (T); + case 0x2475b970: return fetch_type_bare_set_client_d_h_params_answer (T); + case 0x12b299d4: return fetch_type_sticker_pack (T); + case 0xed4d662b: return fetch_type_bare_sticker_pack (T); + case 0xa7a43b17: return fetch_type_sticker_set (T); + case 0x585bc4e8: return fetch_type_bare_sticker_set (T); + case 0xb5286e24: return fetch_type_string (T); + case 0x4ad791db: return fetch_type_bare_string (T); + case 0x2e02b27e: return fetch_type_update (T); + case 0xd1fd4d81: return fetch_type_bare_update (T); + case 0x22499d27: return fetch_type_updates (T); + case 0xddb662d8: return fetch_type_bare_updates (T); + case 0x02e6c0c8: return fetch_type_user (T); + case 0xfd193f37: return fetch_type_bare_user (T); + case 0x5a89ac5b: return fetch_type_user_full (T); + case 0xa57653a4: return fetch_type_bare_user_full (T); + case 0x9a486229: return fetch_type_user_profile_photo (T); + case 0x65b79dd6: return fetch_type_bare_user_profile_photo (T); + case 0x76de9570: return fetch_type_user_status (T); + case 0x89216a8f: return fetch_type_bare_user_status (T); + case 0x1cb5c415: return fetch_type_vector (T); + case 0xe34a3bea: return fetch_type_bare_vector (T); + case 0x1716b174: return fetch_type_video (T); + case 0xe8e94e8b: return fetch_type_bare_video (T); + case 0xafa14973: return fetch_type_wall_paper (T); + case 0x505eb68c: return fetch_type_bare_wall_paper (T); + case 0x8d8c0d41: return fetch_type_web_page (T); + case 0x7273f2be: return fetch_type_bare_web_page (T); + case 0x1250abde: return fetch_type_account_authorizations (T); + case 0xedaf5421: return fetch_type_bare_account_authorizations (T); + case 0xeac2a804: return fetch_type_account_password (T); + case 0x153d57fb: return fetch_type_bare_account_password (T); + case 0xbcfc532c: return fetch_type_account_password_input_settings (T); + case 0x4303acd3: return fetch_type_bare_account_password_input_settings (T); + case 0xb7b72ab3: return fetch_type_account_password_settings (T); + case 0x4848d54c: return fetch_type_bare_account_password_settings (T); + case 0x554abb6f: return fetch_type_account_privacy_rules (T); + case 0xaab54490: return fetch_type_bare_account_privacy_rules (T); + case 0xa4f58c4c: return fetch_type_account_sent_change_phone_code (T); + case 0x5b0a73b3: return fetch_type_bare_account_sent_change_phone_code (T); + case 0xff036af1: return fetch_type_auth_authorization (T); + case 0x00fc950e: return fetch_type_bare_auth_authorization (T); + case 0x811ea28e: return fetch_type_auth_checked_phone (T); + case 0x7ee15d71: return fetch_type_bare_auth_checked_phone (T); + case 0xdf969c2d: return fetch_type_auth_exported_authorization (T); + case 0x206963d2: return fetch_type_bare_auth_exported_authorization (T); + case 0x137948a5: return fetch_type_auth_password_recovery (T); + case 0xec86b75a: return fetch_type_bare_auth_password_recovery (T); + case 0x0cc8bc16: return fetch_type_auth_sent_code (T); + case 0xf33743e9: return fetch_type_bare_auth_sent_code (T); + case 0x0377168f: return fetch_type_binlog_encr_key (T); + case 0xfc88e970: return fetch_type_bare_binlog_encr_key (T); + case 0x66ff03a6: return fetch_type_binlog_update (T); + case 0x9900fc59: return fetch_type_bare_binlog_update (T); + case 0x8c1b8fb4: return fetch_type_contacts_blocked (T); + case 0x73e4704b: return fetch_type_bare_contacts_blocked (T); + case 0xd8c02560: return fetch_type_contacts_contacts (T); + case 0x273fda9f: return fetch_type_bare_contacts_contacts (T); + case 0x0566000e: return fetch_type_contacts_found (T); + case 0xfa99fff1: return fetch_type_bare_contacts_found (T); + case 0xad524315: return fetch_type_contacts_imported_contacts (T); + case 0x52adbcea: return fetch_type_bare_contacts_imported_contacts (T); + case 0x3ace484c: return fetch_type_contacts_link (T); + case 0xc531b7b3: return fetch_type_bare_contacts_link (T); + case 0x5649dcc5: return fetch_type_contacts_suggested (T); + case 0xa9b6233a: return fetch_type_bare_contacts_suggested (T); + case 0x48feb267: return fetch_type_geochats_located (T); + case 0xb7014d98: return fetch_type_bare_geochats_located (T); + case 0x6d0a0e59: return fetch_type_geochats_messages (T); + case 0x92f5f1a6: return fetch_type_bare_geochats_messages (T); + case 0x17b1578b: return fetch_type_geochats_stated_message (T); + case 0xe84ea874: return fetch_type_bare_geochats_stated_message (T); + case 0x4ddd9627: return fetch_type_help_app_update (T); + case 0xb22269d8: return fetch_type_bare_help_app_update (T); + case 0x18cb9f78: return fetch_type_help_invite_text (T); + case 0xe7346087: return fetch_type_bare_help_invite_text (T); + case 0x17c6b5f6: return fetch_type_help_support (T); + case 0xe8394a09: return fetch_type_bare_help_support (T); + case 0xb45c69d1: return fetch_type_messages_affected_history (T); + case 0x4ba3962e: return fetch_type_bare_messages_affected_history (T); + case 0x84d19185: return fetch_type_messages_affected_messages (T); + case 0x7b2e6e7a: return fetch_type_bare_messages_affected_messages (T); + case 0xb485502f: return fetch_type_messages_all_stickers (T); + case 0x4b7aafd0: return fetch_type_bare_messages_all_stickers (T); + case 0xe5d7d19c: return fetch_type_messages_chat_full (T); + case 0x1a282e63: return fetch_type_bare_messages_chat_full (T); + case 0x64ff9fd5: return fetch_type_messages_chats (T); + case 0x9b00602a: return fetch_type_bare_messages_chats (T); + case 0xecc058e8: return fetch_type_messages_dh_config (T); + case 0x133fa717: return fetch_type_bare_messages_dh_config (T); + case 0x645af8b3: return fetch_type_messages_dialogs (T); + case 0x9ba5074c: return fetch_type_bare_messages_dialogs (T); + case 0x3f4e0648: return fetch_type_messages_message (T); + case 0xc0b1f9b7: return fetch_type_bare_messages_message (T); + case 0x8735e464: return fetch_type_messages_messages (T); + case 0x78ca1b9b: return fetch_type_bare_messages_messages (T); + case 0xc29c7607: return fetch_type_messages_sent_encrypted_message (T); + case 0x3d6389f8: return fetch_type_bare_messages_sent_encrypted_message (T); + case 0x799ce190: return fetch_type_messages_sent_message (T); + case 0x86631e6f: return fetch_type_bare_messages_sent_message (T); + case 0xb60a24a6: return fetch_type_messages_sticker_set (T); + case 0x49f5db59: return fetch_type_bare_messages_sticker_set (T); + case 0x7bfa5710: return fetch_type_messages_stickers (T); + case 0x8405a8ef: return fetch_type_bare_messages_stickers (T); + case 0x20212ca8: return fetch_type_photos_photo (T); + case 0xdfded357: return fetch_type_bare_photos_photo (T); + case 0x98cf75f1: return fetch_type_photos_photos (T); + case 0x67308a0e: return fetch_type_bare_photos_photos (T); + case 0x3e2838a8: return fetch_type_storage_file_type (T); + case 0xc1d7c757: return fetch_type_bare_storage_file_type (T); + case 0xf57a2419: return fetch_type_updates_difference (T); + case 0x0a85dbe6: return fetch_type_bare_updates_difference (T); + case 0xa56c2a3e: return fetch_type_updates_state (T); + case 0x5a93d5c1: return fetch_type_bare_updates_state (T); + case 0x096a18d5: return fetch_type_upload_file (T); + case 0xf695e72a: return fetch_type_bare_upload_file (T); + default: return -1; } +} diff --git a/libs/tgl/src/auto/auto-fetch.h b/libs/tgl/src/auto/auto-fetch.h new file mode 100644 index 0000000000..803f7b6902 --- /dev/null +++ b/libs/tgl/src/auto/auto-fetch.h @@ -0,0 +1,717 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +#include +#include +struct tgl_state; +char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T); +int fetch_constructor_account_days_t_t_l (struct paramed_type *T); +int fetch_constructor_audio_empty (struct paramed_type *T); +int fetch_constructor_audio (struct paramed_type *T); +int fetch_constructor_authorization (struct paramed_type *T); +int fetch_constructor_bool_false (struct paramed_type *T); +int fetch_constructor_bool_true (struct paramed_type *T); +int fetch_constructor_bot_command (struct paramed_type *T); +int fetch_constructor_bot_command_old (struct paramed_type *T); +int fetch_constructor_bot_info_empty (struct paramed_type *T); +int fetch_constructor_bot_info (struct paramed_type *T); +int fetch_constructor_bytes (struct paramed_type *T); +int fetch_constructor_chat_empty (struct paramed_type *T); +int fetch_constructor_chat (struct paramed_type *T); +int fetch_constructor_chat_forbidden (struct paramed_type *T); +int fetch_constructor_geo_chat (struct paramed_type *T); +int fetch_constructor_chat_full (struct paramed_type *T); +int fetch_constructor_chat_invite_already (struct paramed_type *T); +int fetch_constructor_chat_invite (struct paramed_type *T); +int fetch_constructor_chat_located (struct paramed_type *T); +int fetch_constructor_chat_participant (struct paramed_type *T); +int fetch_constructor_chat_participants_forbidden (struct paramed_type *T); +int fetch_constructor_chat_participants (struct paramed_type *T); +int fetch_constructor_chat_photo_empty (struct paramed_type *T); +int fetch_constructor_chat_photo (struct paramed_type *T); +int fetch_constructor_client_d_h_inner_data (struct paramed_type *T); +int fetch_constructor_config (struct paramed_type *T); +int fetch_constructor_contact (struct paramed_type *T); +int fetch_constructor_contact_blocked (struct paramed_type *T); +int fetch_constructor_contact_found (struct paramed_type *T); +int fetch_constructor_contact_link_unknown (struct paramed_type *T); +int fetch_constructor_contact_link_none (struct paramed_type *T); +int fetch_constructor_contact_link_has_phone (struct paramed_type *T); +int fetch_constructor_contact_link_contact (struct paramed_type *T); +int fetch_constructor_contact_status (struct paramed_type *T); +int fetch_constructor_contact_suggested (struct paramed_type *T); +int fetch_constructor_dc_option_l28 (struct paramed_type *T); +int fetch_constructor_dc_option (struct paramed_type *T); +int fetch_constructor_decrypted_message (struct paramed_type *T); +int fetch_constructor_decrypted_message_service (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_read_messages (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_delete_messages (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_flush_history (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_resend (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_notify_layer (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_typing (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_request_key (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_accept_key (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_abort_key (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_commit_key (struct paramed_type *T); +int fetch_constructor_decrypted_message_action_noop (struct paramed_type *T); +int fetch_constructor_decrypted_message_layer (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_contact (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_document (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_video (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_audio (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_external_document (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_video_l12 (struct paramed_type *T); +int fetch_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T); +int fetch_constructor_dialog (struct paramed_type *T); +int fetch_constructor_disabled_feature (struct paramed_type *T); +int fetch_constructor_document_empty (struct paramed_type *T); +int fetch_constructor_document (struct paramed_type *T); +int fetch_constructor_document_l19 (struct paramed_type *T); +int fetch_constructor_document_attribute_image_size (struct paramed_type *T); +int fetch_constructor_document_attribute_animated (struct paramed_type *T); +int fetch_constructor_document_attribute_sticker_l28 (struct paramed_type *T); +int fetch_constructor_document_attribute_sticker (struct paramed_type *T); +int fetch_constructor_document_attribute_video (struct paramed_type *T); +int fetch_constructor_document_attribute_audio (struct paramed_type *T); +int fetch_constructor_document_attribute_filename (struct paramed_type *T); +int fetch_constructor_double (struct paramed_type *T); +int fetch_constructor_encrypted_chat_empty (struct paramed_type *T); +int fetch_constructor_encrypted_chat_waiting (struct paramed_type *T); +int fetch_constructor_encrypted_chat_requested (struct paramed_type *T); +int fetch_constructor_encrypted_chat (struct paramed_type *T); +int fetch_constructor_encrypted_chat_discarded (struct paramed_type *T); +int fetch_constructor_encrypted_file_empty (struct paramed_type *T); +int fetch_constructor_encrypted_file (struct paramed_type *T); +int fetch_constructor_encrypted_message (struct paramed_type *T); +int fetch_constructor_encrypted_message_service (struct paramed_type *T); +int fetch_constructor_error (struct paramed_type *T); +int fetch_constructor_chat_invite_empty (struct paramed_type *T); +int fetch_constructor_chat_invite_exported (struct paramed_type *T); +int fetch_constructor_file_location_unavailable (struct paramed_type *T); +int fetch_constructor_file_location (struct paramed_type *T); +int fetch_constructor_geo_chat_message_empty (struct paramed_type *T); +int fetch_constructor_geo_chat_message (struct paramed_type *T); +int fetch_constructor_geo_chat_message_service (struct paramed_type *T); +int fetch_constructor_geo_point_empty (struct paramed_type *T); +int fetch_constructor_geo_point (struct paramed_type *T); +int fetch_constructor_imported_contact (struct paramed_type *T); +int fetch_constructor_input_app_event (struct paramed_type *T); +int fetch_constructor_input_audio_empty (struct paramed_type *T); +int fetch_constructor_input_audio (struct paramed_type *T); +int fetch_constructor_input_chat_photo_empty (struct paramed_type *T); +int fetch_constructor_input_chat_uploaded_photo (struct paramed_type *T); +int fetch_constructor_input_chat_photo (struct paramed_type *T); +int fetch_constructor_input_phone_contact (struct paramed_type *T); +int fetch_constructor_input_document_empty (struct paramed_type *T); +int fetch_constructor_input_document (struct paramed_type *T); +int fetch_constructor_input_encrypted_chat (struct paramed_type *T); +int fetch_constructor_input_encrypted_file_empty (struct paramed_type *T); +int fetch_constructor_input_encrypted_file_uploaded (struct paramed_type *T); +int fetch_constructor_input_encrypted_file (struct paramed_type *T); +int fetch_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T); +int fetch_constructor_input_file (struct paramed_type *T); +int fetch_constructor_input_file_big (struct paramed_type *T); +int fetch_constructor_input_file_location (struct paramed_type *T); +int fetch_constructor_input_video_file_location (struct paramed_type *T); +int fetch_constructor_input_encrypted_file_location (struct paramed_type *T); +int fetch_constructor_input_audio_file_location (struct paramed_type *T); +int fetch_constructor_input_document_file_location (struct paramed_type *T); +int fetch_constructor_input_geo_chat (struct paramed_type *T); +int fetch_constructor_input_geo_point_empty (struct paramed_type *T); +int fetch_constructor_input_geo_point (struct paramed_type *T); +int fetch_constructor_input_media_empty (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T); +int fetch_constructor_input_media_photo (struct paramed_type *T); +int fetch_constructor_input_media_geo_point (struct paramed_type *T); +int fetch_constructor_input_media_contact (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_video (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T); +int fetch_constructor_input_media_video (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_audio (struct paramed_type *T); +int fetch_constructor_input_media_audio (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_document (struct paramed_type *T); +int fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T); +int fetch_constructor_input_media_document (struct paramed_type *T); +int fetch_constructor_input_media_venue (struct paramed_type *T); +int fetch_constructor_input_notify_peer (struct paramed_type *T); +int fetch_constructor_input_notify_users (struct paramed_type *T); +int fetch_constructor_input_notify_chats (struct paramed_type *T); +int fetch_constructor_input_notify_all (struct paramed_type *T); +int fetch_constructor_input_notify_geo_chat_peer (struct paramed_type *T); +int fetch_constructor_input_peer_empty (struct paramed_type *T); +int fetch_constructor_input_peer_self (struct paramed_type *T); +int fetch_constructor_input_peer_contact (struct paramed_type *T); +int fetch_constructor_input_peer_foreign (struct paramed_type *T); +int fetch_constructor_input_peer_chat (struct paramed_type *T); +int fetch_constructor_input_peer_notify_events_empty (struct paramed_type *T); +int fetch_constructor_input_peer_notify_events_all (struct paramed_type *T); +int fetch_constructor_input_peer_notify_settings (struct paramed_type *T); +int fetch_constructor_input_photo_empty (struct paramed_type *T); +int fetch_constructor_input_photo (struct paramed_type *T); +int fetch_constructor_input_photo_crop_auto (struct paramed_type *T); +int fetch_constructor_input_photo_crop (struct paramed_type *T); +int fetch_constructor_input_privacy_key_status_timestamp (struct paramed_type *T); +int fetch_constructor_input_privacy_value_allow_contacts (struct paramed_type *T); +int fetch_constructor_input_privacy_value_allow_all (struct paramed_type *T); +int fetch_constructor_input_privacy_value_allow_users (struct paramed_type *T); +int fetch_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T); +int fetch_constructor_input_privacy_value_disallow_all (struct paramed_type *T); +int fetch_constructor_input_privacy_value_disallow_users (struct paramed_type *T); +int fetch_constructor_input_sticker_set_empty (struct paramed_type *T); +int fetch_constructor_input_sticker_set_i_d (struct paramed_type *T); +int fetch_constructor_input_sticker_set_short_name (struct paramed_type *T); +int fetch_constructor_input_user_empty (struct paramed_type *T); +int fetch_constructor_input_user_self (struct paramed_type *T); +int fetch_constructor_input_user_contact (struct paramed_type *T); +int fetch_constructor_input_user_foreign (struct paramed_type *T); +int fetch_constructor_input_video_empty (struct paramed_type *T); +int fetch_constructor_input_video (struct paramed_type *T); +int fetch_constructor_int (struct paramed_type *T); +int fetch_constructor_int128 (struct paramed_type *T); +int fetch_constructor_int256 (struct paramed_type *T); +int fetch_constructor_keyboard_button (struct paramed_type *T); +int fetch_constructor_keyboard_button_row (struct paramed_type *T); +int fetch_constructor_long (struct paramed_type *T); +int fetch_constructor_message_empty (struct paramed_type *T); +int fetch_constructor_message (struct paramed_type *T); +int fetch_constructor_message_service (struct paramed_type *T); +int fetch_constructor_message_action_empty (struct paramed_type *T); +int fetch_constructor_message_action_chat_create (struct paramed_type *T); +int fetch_constructor_message_action_chat_edit_title (struct paramed_type *T); +int fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T); +int fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T); +int fetch_constructor_message_action_chat_add_user (struct paramed_type *T); +int fetch_constructor_message_action_chat_delete_user (struct paramed_type *T); +int fetch_constructor_message_action_geo_chat_create (struct paramed_type *T); +int fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T); +int fetch_constructor_message_action_chat_joined_by_link (struct paramed_type *T); +int fetch_constructor_message_media_empty (struct paramed_type *T); +int fetch_constructor_message_media_photo (struct paramed_type *T); +int fetch_constructor_message_media_video (struct paramed_type *T); +int fetch_constructor_message_media_geo (struct paramed_type *T); +int fetch_constructor_message_media_contact (struct paramed_type *T); +int fetch_constructor_message_media_unsupported (struct paramed_type *T); +int fetch_constructor_message_media_document (struct paramed_type *T); +int fetch_constructor_message_media_audio (struct paramed_type *T); +int fetch_constructor_message_media_web_page (struct paramed_type *T); +int fetch_constructor_message_media_venue (struct paramed_type *T); +int fetch_constructor_message_media_photo_l27 (struct paramed_type *T); +int fetch_constructor_message_media_video_l27 (struct paramed_type *T); +int fetch_constructor_input_messages_filter_empty (struct paramed_type *T); +int fetch_constructor_input_messages_filter_photos (struct paramed_type *T); +int fetch_constructor_input_messages_filter_video (struct paramed_type *T); +int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T); +int fetch_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T); +int fetch_constructor_input_messages_filter_document (struct paramed_type *T); +int fetch_constructor_input_messages_filter_audio (struct paramed_type *T); +int fetch_constructor_nearest_dc (struct paramed_type *T); +int fetch_constructor_notify_peer (struct paramed_type *T); +int fetch_constructor_notify_users (struct paramed_type *T); +int fetch_constructor_notify_chats (struct paramed_type *T); +int fetch_constructor_notify_all (struct paramed_type *T); +int fetch_constructor_null (struct paramed_type *T); +int fetch_constructor_p_q_inner_data (struct paramed_type *T); +int fetch_constructor_p_q_inner_data_temp (struct paramed_type *T); +int fetch_constructor_peer_user (struct paramed_type *T); +int fetch_constructor_peer_chat (struct paramed_type *T); +int fetch_constructor_peer_notify_events_empty (struct paramed_type *T); +int fetch_constructor_peer_notify_events_all (struct paramed_type *T); +int fetch_constructor_peer_notify_settings_empty (struct paramed_type *T); +int fetch_constructor_peer_notify_settings (struct paramed_type *T); +int fetch_constructor_photo_empty (struct paramed_type *T); +int fetch_constructor_photo (struct paramed_type *T); +int fetch_constructor_photo_l27 (struct paramed_type *T); +int fetch_constructor_photo_size_empty (struct paramed_type *T); +int fetch_constructor_photo_size (struct paramed_type *T); +int fetch_constructor_photo_cached_size (struct paramed_type *T); +int fetch_constructor_privacy_key_status_timestamp (struct paramed_type *T); +int fetch_constructor_privacy_value_allow_contacts (struct paramed_type *T); +int fetch_constructor_privacy_value_allow_all (struct paramed_type *T); +int fetch_constructor_privacy_value_allow_users (struct paramed_type *T); +int fetch_constructor_privacy_value_disallow_contacts (struct paramed_type *T); +int fetch_constructor_privacy_value_disallow_all (struct paramed_type *T); +int fetch_constructor_privacy_value_disallow_users (struct paramed_type *T); +int fetch_constructor_received_notify_message (struct paramed_type *T); +int fetch_constructor_reply_keyboard_hide (struct paramed_type *T); +int fetch_constructor_reply_keyboard_force_reply (struct paramed_type *T); +int fetch_constructor_reply_keyboard_markup (struct paramed_type *T); +int fetch_constructor_res_p_q (struct paramed_type *T); +int fetch_constructor_send_message_typing_action (struct paramed_type *T); +int fetch_constructor_send_message_cancel_action (struct paramed_type *T); +int fetch_constructor_send_message_record_video_action (struct paramed_type *T); +int fetch_constructor_send_message_upload_video_action_l27 (struct paramed_type *T); +int fetch_constructor_send_message_upload_video_action (struct paramed_type *T); +int fetch_constructor_send_message_record_audio_action (struct paramed_type *T); +int fetch_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T); +int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T); +int fetch_constructor_send_message_upload_photo_action (struct paramed_type *T); +int fetch_constructor_send_message_upload_document_action_l27 (struct paramed_type *T); +int fetch_constructor_send_message_upload_document_action (struct paramed_type *T); +int fetch_constructor_send_message_geo_location_action (struct paramed_type *T); +int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T); +int fetch_constructor_server_d_h_params_fail (struct paramed_type *T); +int fetch_constructor_server_d_h_params_ok (struct paramed_type *T); +int fetch_constructor_server_d_h_inner_data (struct paramed_type *T); +int fetch_constructor_dh_gen_ok (struct paramed_type *T); +int fetch_constructor_dh_gen_retry (struct paramed_type *T); +int fetch_constructor_dh_gen_fail (struct paramed_type *T); +int fetch_constructor_sticker_pack (struct paramed_type *T); +int fetch_constructor_sticker_set (struct paramed_type *T); +int fetch_constructor_string (struct paramed_type *T); +int fetch_constructor_update_new_message (struct paramed_type *T); +int fetch_constructor_update_message_i_d (struct paramed_type *T); +int fetch_constructor_update_delete_messages (struct paramed_type *T); +int fetch_constructor_update_user_typing (struct paramed_type *T); +int fetch_constructor_update_chat_user_typing (struct paramed_type *T); +int fetch_constructor_update_chat_participants (struct paramed_type *T); +int fetch_constructor_update_user_status (struct paramed_type *T); +int fetch_constructor_update_user_name (struct paramed_type *T); +int fetch_constructor_update_user_photo (struct paramed_type *T); +int fetch_constructor_update_contact_registered (struct paramed_type *T); +int fetch_constructor_update_contact_link (struct paramed_type *T); +int fetch_constructor_update_new_authorization (struct paramed_type *T); +int fetch_constructor_update_new_geo_chat_message (struct paramed_type *T); +int fetch_constructor_update_new_encrypted_message (struct paramed_type *T); +int fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T); +int fetch_constructor_update_encryption (struct paramed_type *T); +int fetch_constructor_update_encrypted_messages_read (struct paramed_type *T); +int fetch_constructor_update_chat_participant_add (struct paramed_type *T); +int fetch_constructor_update_chat_participant_delete (struct paramed_type *T); +int fetch_constructor_update_dc_options (struct paramed_type *T); +int fetch_constructor_update_user_blocked (struct paramed_type *T); +int fetch_constructor_update_notify_settings (struct paramed_type *T); +int fetch_constructor_update_service_notification (struct paramed_type *T); +int fetch_constructor_update_privacy (struct paramed_type *T); +int fetch_constructor_update_user_phone (struct paramed_type *T); +int fetch_constructor_update_read_history_inbox (struct paramed_type *T); +int fetch_constructor_update_read_history_outbox (struct paramed_type *T); +int fetch_constructor_update_web_page (struct paramed_type *T); +int fetch_constructor_update_read_messages_contents (struct paramed_type *T); +int fetch_constructor_update_msg_update (struct paramed_type *T); +int fetch_constructor_updates_too_long (struct paramed_type *T); +int fetch_constructor_update_short_message (struct paramed_type *T); +int fetch_constructor_update_short_chat_message (struct paramed_type *T); +int fetch_constructor_update_short (struct paramed_type *T); +int fetch_constructor_updates_combined (struct paramed_type *T); +int fetch_constructor_updates (struct paramed_type *T); +int fetch_constructor_user_empty (struct paramed_type *T); +int fetch_constructor_user (struct paramed_type *T); +int fetch_constructor_user_full (struct paramed_type *T); +int fetch_constructor_user_profile_photo_empty (struct paramed_type *T); +int fetch_constructor_user_profile_photo (struct paramed_type *T); +int fetch_constructor_user_status_empty (struct paramed_type *T); +int fetch_constructor_user_status_online (struct paramed_type *T); +int fetch_constructor_user_status_offline (struct paramed_type *T); +int fetch_constructor_user_status_recently (struct paramed_type *T); +int fetch_constructor_user_status_last_week (struct paramed_type *T); +int fetch_constructor_user_status_last_month (struct paramed_type *T); +int fetch_constructor_vector (struct paramed_type *T); +int fetch_constructor_video_empty (struct paramed_type *T); +int fetch_constructor_video (struct paramed_type *T); +int fetch_constructor_video_l27 (struct paramed_type *T); +int fetch_constructor_wall_paper (struct paramed_type *T); +int fetch_constructor_wall_paper_solid (struct paramed_type *T); +int fetch_constructor_web_page_empty (struct paramed_type *T); +int fetch_constructor_web_page_pending (struct paramed_type *T); +int fetch_constructor_web_page (struct paramed_type *T); +int fetch_constructor_account_authorizations (struct paramed_type *T); +int fetch_constructor_account_no_password (struct paramed_type *T); +int fetch_constructor_account_password (struct paramed_type *T); +int fetch_constructor_account_password_input_settings (struct paramed_type *T); +int fetch_constructor_account_password_settings (struct paramed_type *T); +int fetch_constructor_account_privacy_rules (struct paramed_type *T); +int fetch_constructor_account_sent_change_phone_code (struct paramed_type *T); +int fetch_constructor_auth_authorization (struct paramed_type *T); +int fetch_constructor_auth_checked_phone (struct paramed_type *T); +int fetch_constructor_auth_exported_authorization (struct paramed_type *T); +int fetch_constructor_auth_password_recovery (struct paramed_type *T); +int fetch_constructor_auth_sent_code (struct paramed_type *T); +int fetch_constructor_auth_sent_app_code (struct paramed_type *T); +int fetch_constructor_binlog_encr_key (struct paramed_type *T); +int fetch_constructor_binlog_start (struct paramed_type *T); +int fetch_constructor_binlog_dc_option (struct paramed_type *T); +int fetch_constructor_binlog_dc_option_new (struct paramed_type *T); +int fetch_constructor_binlog_auth_key (struct paramed_type *T); +int fetch_constructor_binlog_default_dc (struct paramed_type *T); +int fetch_constructor_binlog_dc_signed (struct paramed_type *T); +int fetch_constructor_binlog_our_id (struct paramed_type *T); +int fetch_constructor_binlog_set_dh_params (struct paramed_type *T); +int fetch_constructor_binlog_set_pts (struct paramed_type *T); +int fetch_constructor_binlog_set_qts (struct paramed_type *T); +int fetch_constructor_binlog_set_date (struct paramed_type *T); +int fetch_constructor_binlog_set_seq (struct paramed_type *T); +int fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T); +int fetch_constructor_binlog_encr_chat_new (struct paramed_type *T); +int fetch_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T); +int fetch_constructor_binlog_user_delete (struct paramed_type *T); +int fetch_constructor_binlog_user_new (struct paramed_type *T); +int fetch_constructor_binlog_chat_new (struct paramed_type *T); +int fetch_constructor_binlog_chat_add_participant (struct paramed_type *T); +int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T); +int fetch_constructor_binlog_set_msg_id (struct paramed_type *T); +int fetch_constructor_binlog_message_delete (struct paramed_type *T); +int fetch_constructor_binlog_message_new (struct paramed_type *T); +int fetch_constructor_binlog_message_encr_new (struct paramed_type *T); +int fetch_constructor_binlog_msg_update (struct paramed_type *T); +int fetch_constructor_binlog_reset_authorization (struct paramed_type *T); +int fetch_constructor_contacts_blocked (struct paramed_type *T); +int fetch_constructor_contacts_blocked_slice (struct paramed_type *T); +int fetch_constructor_contacts_contacts_not_modified (struct paramed_type *T); +int fetch_constructor_contacts_contacts (struct paramed_type *T); +int fetch_constructor_contacts_found (struct paramed_type *T); +int fetch_constructor_contacts_imported_contacts (struct paramed_type *T); +int fetch_constructor_contacts_link (struct paramed_type *T); +int fetch_constructor_contacts_suggested (struct paramed_type *T); +int fetch_constructor_geochats_located (struct paramed_type *T); +int fetch_constructor_geochats_messages (struct paramed_type *T); +int fetch_constructor_geochats_messages_slice (struct paramed_type *T); +int fetch_constructor_geochats_stated_message (struct paramed_type *T); +int fetch_constructor_help_app_update (struct paramed_type *T); +int fetch_constructor_help_no_app_update (struct paramed_type *T); +int fetch_constructor_help_invite_text (struct paramed_type *T); +int fetch_constructor_help_support (struct paramed_type *T); +int fetch_constructor_messages_affected_history (struct paramed_type *T); +int fetch_constructor_messages_affected_messages (struct paramed_type *T); +int fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T); +int fetch_constructor_messages_all_stickers (struct paramed_type *T); +int fetch_constructor_messages_chat_full (struct paramed_type *T); +int fetch_constructor_messages_chats (struct paramed_type *T); +int fetch_constructor_messages_dh_config_not_modified (struct paramed_type *T); +int fetch_constructor_messages_dh_config (struct paramed_type *T); +int fetch_constructor_messages_dialogs (struct paramed_type *T); +int fetch_constructor_messages_dialogs_slice (struct paramed_type *T); +int fetch_constructor_messages_message_empty (struct paramed_type *T); +int fetch_constructor_messages_messages (struct paramed_type *T); +int fetch_constructor_messages_messages_slice (struct paramed_type *T); +int fetch_constructor_messages_sent_encrypted_message (struct paramed_type *T); +int fetch_constructor_messages_sent_encrypted_file (struct paramed_type *T); +int fetch_constructor_messages_sent_message (struct paramed_type *T); +int fetch_constructor_messages_sent_message_link (struct paramed_type *T); +int fetch_constructor_messages_sticker_set (struct paramed_type *T); +int fetch_constructor_messages_stickers_not_modified (struct paramed_type *T); +int fetch_constructor_messages_stickers (struct paramed_type *T); +int fetch_constructor_photos_photo (struct paramed_type *T); +int fetch_constructor_photos_photos (struct paramed_type *T); +int fetch_constructor_photos_photos_slice (struct paramed_type *T); +int fetch_constructor_storage_file_unknown (struct paramed_type *T); +int fetch_constructor_storage_file_jpeg (struct paramed_type *T); +int fetch_constructor_storage_file_gif (struct paramed_type *T); +int fetch_constructor_storage_file_png (struct paramed_type *T); +int fetch_constructor_storage_file_pdf (struct paramed_type *T); +int fetch_constructor_storage_file_mp3 (struct paramed_type *T); +int fetch_constructor_storage_file_mov (struct paramed_type *T); +int fetch_constructor_storage_file_partial (struct paramed_type *T); +int fetch_constructor_storage_file_mp4 (struct paramed_type *T); +int fetch_constructor_storage_file_webp (struct paramed_type *T); +int fetch_constructor_updates_difference_empty (struct paramed_type *T); +int fetch_constructor_updates_difference (struct paramed_type *T); +int fetch_constructor_updates_difference_slice (struct paramed_type *T); +int fetch_constructor_updates_state (struct paramed_type *T); +int fetch_constructor_upload_file (struct paramed_type *T); +int fetch_type_account_days_t_t_l (struct paramed_type *T); +int fetch_type_bare_account_days_t_t_l (struct paramed_type *T); +int fetch_type_audio (struct paramed_type *T); +int fetch_type_bare_audio (struct paramed_type *T); +int fetch_type_authorization (struct paramed_type *T); +int fetch_type_bare_authorization (struct paramed_type *T); +int fetch_type_bool (struct paramed_type *T); +int fetch_type_bare_bool (struct paramed_type *T); +int fetch_type_bot_command (struct paramed_type *T); +int fetch_type_bare_bot_command (struct paramed_type *T); +int fetch_type_bot_info (struct paramed_type *T); +int fetch_type_bare_bot_info (struct paramed_type *T); +int fetch_type_bytes (struct paramed_type *T); +int fetch_type_bare_bytes (struct paramed_type *T); +int fetch_type_chat (struct paramed_type *T); +int fetch_type_bare_chat (struct paramed_type *T); +int fetch_type_chat_full (struct paramed_type *T); +int fetch_type_bare_chat_full (struct paramed_type *T); +int fetch_type_chat_invite (struct paramed_type *T); +int fetch_type_bare_chat_invite (struct paramed_type *T); +int fetch_type_chat_located (struct paramed_type *T); +int fetch_type_bare_chat_located (struct paramed_type *T); +int fetch_type_chat_participant (struct paramed_type *T); +int fetch_type_bare_chat_participant (struct paramed_type *T); +int fetch_type_chat_participants (struct paramed_type *T); +int fetch_type_bare_chat_participants (struct paramed_type *T); +int fetch_type_chat_photo (struct paramed_type *T); +int fetch_type_bare_chat_photo (struct paramed_type *T); +int fetch_type_client_d_h_inner_data (struct paramed_type *T); +int fetch_type_bare_client_d_h_inner_data (struct paramed_type *T); +int fetch_type_config (struct paramed_type *T); +int fetch_type_bare_config (struct paramed_type *T); +int fetch_type_contact (struct paramed_type *T); +int fetch_type_bare_contact (struct paramed_type *T); +int fetch_type_contact_blocked (struct paramed_type *T); +int fetch_type_bare_contact_blocked (struct paramed_type *T); +int fetch_type_contact_found (struct paramed_type *T); +int fetch_type_bare_contact_found (struct paramed_type *T); +int fetch_type_contact_link (struct paramed_type *T); +int fetch_type_bare_contact_link (struct paramed_type *T); +int fetch_type_contact_status (struct paramed_type *T); +int fetch_type_bare_contact_status (struct paramed_type *T); +int fetch_type_contact_suggested (struct paramed_type *T); +int fetch_type_bare_contact_suggested (struct paramed_type *T); +int fetch_type_dc_option (struct paramed_type *T); +int fetch_type_bare_dc_option (struct paramed_type *T); +int fetch_type_decrypted_message (struct paramed_type *T); +int fetch_type_bare_decrypted_message (struct paramed_type *T); +int fetch_type_decrypted_message_action (struct paramed_type *T); +int fetch_type_bare_decrypted_message_action (struct paramed_type *T); +int fetch_type_decrypted_message_layer (struct paramed_type *T); +int fetch_type_bare_decrypted_message_layer (struct paramed_type *T); +int fetch_type_decrypted_message_media (struct paramed_type *T); +int fetch_type_bare_decrypted_message_media (struct paramed_type *T); +int fetch_type_dialog (struct paramed_type *T); +int fetch_type_bare_dialog (struct paramed_type *T); +int fetch_type_disabled_feature (struct paramed_type *T); +int fetch_type_bare_disabled_feature (struct paramed_type *T); +int fetch_type_document (struct paramed_type *T); +int fetch_type_bare_document (struct paramed_type *T); +int fetch_type_document_attribute (struct paramed_type *T); +int fetch_type_bare_document_attribute (struct paramed_type *T); +int fetch_type_double (struct paramed_type *T); +int fetch_type_bare_double (struct paramed_type *T); +int fetch_type_encrypted_chat (struct paramed_type *T); +int fetch_type_bare_encrypted_chat (struct paramed_type *T); +int fetch_type_encrypted_file (struct paramed_type *T); +int fetch_type_bare_encrypted_file (struct paramed_type *T); +int fetch_type_encrypted_message (struct paramed_type *T); +int fetch_type_bare_encrypted_message (struct paramed_type *T); +int fetch_type_error (struct paramed_type *T); +int fetch_type_bare_error (struct paramed_type *T); +int fetch_type_exported_chat_invite (struct paramed_type *T); +int fetch_type_bare_exported_chat_invite (struct paramed_type *T); +int fetch_type_file_location (struct paramed_type *T); +int fetch_type_bare_file_location (struct paramed_type *T); +int fetch_type_geo_chat_message (struct paramed_type *T); +int fetch_type_bare_geo_chat_message (struct paramed_type *T); +int fetch_type_geo_point (struct paramed_type *T); +int fetch_type_bare_geo_point (struct paramed_type *T); +int fetch_type_imported_contact (struct paramed_type *T); +int fetch_type_bare_imported_contact (struct paramed_type *T); +int fetch_type_input_app_event (struct paramed_type *T); +int fetch_type_bare_input_app_event (struct paramed_type *T); +int fetch_type_input_audio (struct paramed_type *T); +int fetch_type_bare_input_audio (struct paramed_type *T); +int fetch_type_input_chat_photo (struct paramed_type *T); +int fetch_type_bare_input_chat_photo (struct paramed_type *T); +int fetch_type_input_contact (struct paramed_type *T); +int fetch_type_bare_input_contact (struct paramed_type *T); +int fetch_type_input_document (struct paramed_type *T); +int fetch_type_bare_input_document (struct paramed_type *T); +int fetch_type_input_encrypted_chat (struct paramed_type *T); +int fetch_type_bare_input_encrypted_chat (struct paramed_type *T); +int fetch_type_input_encrypted_file (struct paramed_type *T); +int fetch_type_bare_input_encrypted_file (struct paramed_type *T); +int fetch_type_input_file (struct paramed_type *T); +int fetch_type_bare_input_file (struct paramed_type *T); +int fetch_type_input_file_location (struct paramed_type *T); +int fetch_type_bare_input_file_location (struct paramed_type *T); +int fetch_type_input_geo_chat (struct paramed_type *T); +int fetch_type_bare_input_geo_chat (struct paramed_type *T); +int fetch_type_input_geo_point (struct paramed_type *T); +int fetch_type_bare_input_geo_point (struct paramed_type *T); +int fetch_type_input_media (struct paramed_type *T); +int fetch_type_bare_input_media (struct paramed_type *T); +int fetch_type_input_notify_peer (struct paramed_type *T); +int fetch_type_bare_input_notify_peer (struct paramed_type *T); +int fetch_type_input_peer (struct paramed_type *T); +int fetch_type_bare_input_peer (struct paramed_type *T); +int fetch_type_input_peer_notify_events (struct paramed_type *T); +int fetch_type_bare_input_peer_notify_events (struct paramed_type *T); +int fetch_type_input_peer_notify_settings (struct paramed_type *T); +int fetch_type_bare_input_peer_notify_settings (struct paramed_type *T); +int fetch_type_input_photo (struct paramed_type *T); +int fetch_type_bare_input_photo (struct paramed_type *T); +int fetch_type_input_photo_crop (struct paramed_type *T); +int fetch_type_bare_input_photo_crop (struct paramed_type *T); +int fetch_type_input_privacy_key (struct paramed_type *T); +int fetch_type_bare_input_privacy_key (struct paramed_type *T); +int fetch_type_input_privacy_rule (struct paramed_type *T); +int fetch_type_bare_input_privacy_rule (struct paramed_type *T); +int fetch_type_input_sticker_set (struct paramed_type *T); +int fetch_type_bare_input_sticker_set (struct paramed_type *T); +int fetch_type_input_user (struct paramed_type *T); +int fetch_type_bare_input_user (struct paramed_type *T); +int fetch_type_input_video (struct paramed_type *T); +int fetch_type_bare_input_video (struct paramed_type *T); +int fetch_type_int (struct paramed_type *T); +int fetch_type_bare_int (struct paramed_type *T); +int fetch_type_int128 (struct paramed_type *T); +int fetch_type_bare_int128 (struct paramed_type *T); +int fetch_type_int256 (struct paramed_type *T); +int fetch_type_bare_int256 (struct paramed_type *T); +int fetch_type_keyboard_button (struct paramed_type *T); +int fetch_type_bare_keyboard_button (struct paramed_type *T); +int fetch_type_keyboard_button_row (struct paramed_type *T); +int fetch_type_bare_keyboard_button_row (struct paramed_type *T); +int fetch_type_long (struct paramed_type *T); +int fetch_type_bare_long (struct paramed_type *T); +int fetch_type_message (struct paramed_type *T); +int fetch_type_bare_message (struct paramed_type *T); +int fetch_type_message_action (struct paramed_type *T); +int fetch_type_bare_message_action (struct paramed_type *T); +int fetch_type_message_media (struct paramed_type *T); +int fetch_type_bare_message_media (struct paramed_type *T); +int fetch_type_messages_filter (struct paramed_type *T); +int fetch_type_bare_messages_filter (struct paramed_type *T); +int fetch_type_nearest_dc (struct paramed_type *T); +int fetch_type_bare_nearest_dc (struct paramed_type *T); +int fetch_type_notify_peer (struct paramed_type *T); +int fetch_type_bare_notify_peer (struct paramed_type *T); +int fetch_type_null (struct paramed_type *T); +int fetch_type_bare_null (struct paramed_type *T); +int fetch_type_p_q_inner_data (struct paramed_type *T); +int fetch_type_bare_p_q_inner_data (struct paramed_type *T); +int fetch_type_peer (struct paramed_type *T); +int fetch_type_bare_peer (struct paramed_type *T); +int fetch_type_peer_notify_events (struct paramed_type *T); +int fetch_type_bare_peer_notify_events (struct paramed_type *T); +int fetch_type_peer_notify_settings (struct paramed_type *T); +int fetch_type_bare_peer_notify_settings (struct paramed_type *T); +int fetch_type_photo (struct paramed_type *T); +int fetch_type_bare_photo (struct paramed_type *T); +int fetch_type_photo_size (struct paramed_type *T); +int fetch_type_bare_photo_size (struct paramed_type *T); +int fetch_type_privacy_key (struct paramed_type *T); +int fetch_type_bare_privacy_key (struct paramed_type *T); +int fetch_type_privacy_rule (struct paramed_type *T); +int fetch_type_bare_privacy_rule (struct paramed_type *T); +int fetch_type_received_notify_message (struct paramed_type *T); +int fetch_type_bare_received_notify_message (struct paramed_type *T); +int fetch_type_reply_markup (struct paramed_type *T); +int fetch_type_bare_reply_markup (struct paramed_type *T); +int fetch_type_res_p_q (struct paramed_type *T); +int fetch_type_bare_res_p_q (struct paramed_type *T); +int fetch_type_send_message_action (struct paramed_type *T); +int fetch_type_bare_send_message_action (struct paramed_type *T); +int fetch_type_server_d_h_params (struct paramed_type *T); +int fetch_type_bare_server_d_h_params (struct paramed_type *T); +int fetch_type_server_d_h_inner_data (struct paramed_type *T); +int fetch_type_bare_server_d_h_inner_data (struct paramed_type *T); +int fetch_type_set_client_d_h_params_answer (struct paramed_type *T); +int fetch_type_bare_set_client_d_h_params_answer (struct paramed_type *T); +int fetch_type_sticker_pack (struct paramed_type *T); +int fetch_type_bare_sticker_pack (struct paramed_type *T); +int fetch_type_sticker_set (struct paramed_type *T); +int fetch_type_bare_sticker_set (struct paramed_type *T); +int fetch_type_string (struct paramed_type *T); +int fetch_type_bare_string (struct paramed_type *T); +int fetch_type_update (struct paramed_type *T); +int fetch_type_bare_update (struct paramed_type *T); +int fetch_type_updates (struct paramed_type *T); +int fetch_type_bare_updates (struct paramed_type *T); +int fetch_type_user (struct paramed_type *T); +int fetch_type_bare_user (struct paramed_type *T); +int fetch_type_user_full (struct paramed_type *T); +int fetch_type_bare_user_full (struct paramed_type *T); +int fetch_type_user_profile_photo (struct paramed_type *T); +int fetch_type_bare_user_profile_photo (struct paramed_type *T); +int fetch_type_user_status (struct paramed_type *T); +int fetch_type_bare_user_status (struct paramed_type *T); +int fetch_type_vector (struct paramed_type *T); +int fetch_type_bare_vector (struct paramed_type *T); +int fetch_type_video (struct paramed_type *T); +int fetch_type_bare_video (struct paramed_type *T); +int fetch_type_wall_paper (struct paramed_type *T); +int fetch_type_bare_wall_paper (struct paramed_type *T); +int fetch_type_web_page (struct paramed_type *T); +int fetch_type_bare_web_page (struct paramed_type *T); +int fetch_type_account_authorizations (struct paramed_type *T); +int fetch_type_bare_account_authorizations (struct paramed_type *T); +int fetch_type_account_password (struct paramed_type *T); +int fetch_type_bare_account_password (struct paramed_type *T); +int fetch_type_account_password_input_settings (struct paramed_type *T); +int fetch_type_bare_account_password_input_settings (struct paramed_type *T); +int fetch_type_account_password_settings (struct paramed_type *T); +int fetch_type_bare_account_password_settings (struct paramed_type *T); +int fetch_type_account_privacy_rules (struct paramed_type *T); +int fetch_type_bare_account_privacy_rules (struct paramed_type *T); +int fetch_type_account_sent_change_phone_code (struct paramed_type *T); +int fetch_type_bare_account_sent_change_phone_code (struct paramed_type *T); +int fetch_type_auth_authorization (struct paramed_type *T); +int fetch_type_bare_auth_authorization (struct paramed_type *T); +int fetch_type_auth_checked_phone (struct paramed_type *T); +int fetch_type_bare_auth_checked_phone (struct paramed_type *T); +int fetch_type_auth_exported_authorization (struct paramed_type *T); +int fetch_type_bare_auth_exported_authorization (struct paramed_type *T); +int fetch_type_auth_password_recovery (struct paramed_type *T); +int fetch_type_bare_auth_password_recovery (struct paramed_type *T); +int fetch_type_auth_sent_code (struct paramed_type *T); +int fetch_type_bare_auth_sent_code (struct paramed_type *T); +int fetch_type_binlog_encr_key (struct paramed_type *T); +int fetch_type_bare_binlog_encr_key (struct paramed_type *T); +int fetch_type_binlog_update (struct paramed_type *T); +int fetch_type_bare_binlog_update (struct paramed_type *T); +int fetch_type_contacts_blocked (struct paramed_type *T); +int fetch_type_bare_contacts_blocked (struct paramed_type *T); +int fetch_type_contacts_contacts (struct paramed_type *T); +int fetch_type_bare_contacts_contacts (struct paramed_type *T); +int fetch_type_contacts_found (struct paramed_type *T); +int fetch_type_bare_contacts_found (struct paramed_type *T); +int fetch_type_contacts_imported_contacts (struct paramed_type *T); +int fetch_type_bare_contacts_imported_contacts (struct paramed_type *T); +int fetch_type_contacts_link (struct paramed_type *T); +int fetch_type_bare_contacts_link (struct paramed_type *T); +int fetch_type_contacts_suggested (struct paramed_type *T); +int fetch_type_bare_contacts_suggested (struct paramed_type *T); +int fetch_type_geochats_located (struct paramed_type *T); +int fetch_type_bare_geochats_located (struct paramed_type *T); +int fetch_type_geochats_messages (struct paramed_type *T); +int fetch_type_bare_geochats_messages (struct paramed_type *T); +int fetch_type_geochats_stated_message (struct paramed_type *T); +int fetch_type_bare_geochats_stated_message (struct paramed_type *T); +int fetch_type_help_app_update (struct paramed_type *T); +int fetch_type_bare_help_app_update (struct paramed_type *T); +int fetch_type_help_invite_text (struct paramed_type *T); +int fetch_type_bare_help_invite_text (struct paramed_type *T); +int fetch_type_help_support (struct paramed_type *T); +int fetch_type_bare_help_support (struct paramed_type *T); +int fetch_type_messages_affected_history (struct paramed_type *T); +int fetch_type_bare_messages_affected_history (struct paramed_type *T); +int fetch_type_messages_affected_messages (struct paramed_type *T); +int fetch_type_bare_messages_affected_messages (struct paramed_type *T); +int fetch_type_messages_all_stickers (struct paramed_type *T); +int fetch_type_bare_messages_all_stickers (struct paramed_type *T); +int fetch_type_messages_chat_full (struct paramed_type *T); +int fetch_type_bare_messages_chat_full (struct paramed_type *T); +int fetch_type_messages_chats (struct paramed_type *T); +int fetch_type_bare_messages_chats (struct paramed_type *T); +int fetch_type_messages_dh_config (struct paramed_type *T); +int fetch_type_bare_messages_dh_config (struct paramed_type *T); +int fetch_type_messages_dialogs (struct paramed_type *T); +int fetch_type_bare_messages_dialogs (struct paramed_type *T); +int fetch_type_messages_message (struct paramed_type *T); +int fetch_type_bare_messages_message (struct paramed_type *T); +int fetch_type_messages_messages (struct paramed_type *T); +int fetch_type_bare_messages_messages (struct paramed_type *T); +int fetch_type_messages_sent_encrypted_message (struct paramed_type *T); +int fetch_type_bare_messages_sent_encrypted_message (struct paramed_type *T); +int fetch_type_messages_sent_message (struct paramed_type *T); +int fetch_type_bare_messages_sent_message (struct paramed_type *T); +int fetch_type_messages_sticker_set (struct paramed_type *T); +int fetch_type_bare_messages_sticker_set (struct paramed_type *T); +int fetch_type_messages_stickers (struct paramed_type *T); +int fetch_type_bare_messages_stickers (struct paramed_type *T); +int fetch_type_photos_photo (struct paramed_type *T); +int fetch_type_bare_photos_photo (struct paramed_type *T); +int fetch_type_photos_photos (struct paramed_type *T); +int fetch_type_bare_photos_photos (struct paramed_type *T); +int fetch_type_storage_file_type (struct paramed_type *T); +int fetch_type_bare_storage_file_type (struct paramed_type *T); +int fetch_type_updates_difference (struct paramed_type *T); +int fetch_type_bare_updates_difference (struct paramed_type *T); +int fetch_type_updates_state (struct paramed_type *T); +int fetch_type_bare_updates_state (struct paramed_type *T); +int fetch_type_upload_file (struct paramed_type *T); +int fetch_type_bare_upload_file (struct paramed_type *T); +int fetch_type_any (struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-free-ds.c b/libs/tgl/src/auto/auto-free-ds.c new file mode 100644 index 0000000000..1538633aff --- /dev/null +++ b/libs/tgl/src/auto/auto-free-ds.c @@ -0,0 +1,9116 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-free-ds.h" +#include "auto-skip.h" +#include "auto-types.h" +#include "..\auto-static-free-ds.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-free-ds.h" +#include "auto/auto-skip.h" +#include "auto/auto-types.h" +#include "auto-static-free-ds.c" +#include "mtproto-common.h" +#endif +#include +void free_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->days, field1); +} +void free_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); +} +void free_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field8); +} +void free_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->device_model, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->platform, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->system_version, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->api_id, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->app_name, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->app_version, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date_created, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date_active, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->ip, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->country, field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->region, field13); +} +void free_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; } +} +void free_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; } +} +void free_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->command, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->description, field2); +} +void free_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->command, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->params, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->description, field3); +} +void free_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; } +} +void free_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->share_text, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->description, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->commands, field5); +} +void free_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return; } + tfree (D->data, D->len + 1); + tfree (D, sizeof (*D)); +} +void free_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_photo (D->photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->participants_count, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->left, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field7); +} +void free_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); +} +void free_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->address, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->venue, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_point (D->geo, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_photo (D->photo, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->participants_count, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->checked_in, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field11); +} +void free_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_participants (D->participants, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->chat_photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer_notify_settings (D->notify_settings, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_exported_chat_invite (D->exported_invite, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->bot_info, field6); +} +void free_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat (D->chat, field1); +} +void free_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field1); +} +void free_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->distance, field2); +} +void free_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->inviter_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); +} +void free_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); +} +void free_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->participants, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field4); +} +void free_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; } +} +void free_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->photo_small, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->photo_big, field2); +} +void free_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->retry_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->g_b, field4); +} +void free_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->expires, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->test_mode, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->this_dc, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->dc_options, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_size_max, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->broadcast_size_max, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->forwarded_count_max, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->online_update_period_ms, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->offline_blur_timeout_ms, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->offline_idle_timeout_ms, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->online_cloud_timeout_ms, field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->notify_cloud_delay_ms, field13); + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->notify_default_delay_ms, field14); + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_big_size, field15); + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->push_chat_period_ms, field16); + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->push_chat_limit, field17); + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->disabled_features, field18); +} +void free_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->mutual, field2); +} +void free_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); +} +void free_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void free_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void free_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void free_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void free_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_status (D->status, field2); +} +void free_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->mutual_contacts, field2); +} +void free_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->hostname, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->ip_address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->port, field4); +} +void free_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->ip_address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->port, field4); +} +void free_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->ttl, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_decrypted_message_media (D->media, field4); +} +void free_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_decrypted_message_action (D->action, field2); +} +void free_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->ttl_seconds, field1); +} +void free_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->random_ids, field1); +} +void free_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->random_ids, field1); +} +void free_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->random_ids, field1); +} +void free_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } +} +void free_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->start_seq_no, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->end_seq_no, field2); +} +void free_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->layer, field1); +} +void free_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_send_message_action (D->action, field1); +} +void free_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->g_a, field2); +} +void free_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->g_b, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->key_fingerprint, field3); +} +void free_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->exchange_id, field1); +} +void free_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->key_fingerprint, field2); +} +void free_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } +} +void free_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->random_bytes, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->layer, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->in_seq_no, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->out_seq_no, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_decrypted_message (D->message, field5); +} +void free_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } +} +void free_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field8); +} +void free_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->latitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->longitude, field2); +} +void free_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field4); +} +void free_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->file_name, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field8); +} +void free_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field10); +} +void free_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field5); +} +void free_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo_size (D->thumb, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->attributes, field8); +} +void free_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field9); +} +void free_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->key, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->iv, field4); +} +void free_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->top_message, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->read_inbox_max_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->unread_count, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer_notify_settings (D->notify_settings, field5); +} +void free_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->feature, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->description, field2); +} +void free_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); +} +void free_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo_size (D->thumb, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->attributes, field8); +} +void free_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->file_name, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo_size (D->thumb, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field9); +} +void free_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field2); +} +void free_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } +} +void free_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->alt, field1); +} +void free_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->alt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_sticker_set (D->stickerset, field2); +} +void free_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field3); +} +void free_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field1); +} +void free_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->file_name, field1); +} +void free_ds_constructor_double (double *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return; } + tfree (D, sizeof (*D)); +} +void free_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->participant_id, field5); +} +void free_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->participant_id, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->g_a, field6); +} +void free_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->participant_id, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->g_a_or_b, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->key_fingerprint, field7); +} +void free_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; } +} +void free_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->key_fingerprint, field5); +} +void free_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->bytes, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_encrypted_file (D->file, field5); +} +void free_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->bytes, field4); +} +void free_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->code, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->text, field2); +} +void free_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; } +} +void free_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->link, field1); +} +void free_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->volume_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->local_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->secret, field3); +} +void free_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->volume_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->local_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->secret, field4); +} +void free_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); +} +void free_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field6); +} +void free_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_action (D->action, field5); +} +void free_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; } +} +void free_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->longitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->latitude, field2); +} +void free_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->client_id, field2); +} +void free_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->time, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->peer, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->data, field4); +} +void free_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; } +} +void free_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } +} +void free_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_photo_crop (D->crop, field2); +} +void free_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_photo (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_photo_crop (D->crop, field2); +} +void free_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->client_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field4); +} +void free_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; } +} +void free_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } +} +void free_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->md5_checksum, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->key_fingerprint, field4); +} +void free_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->key_fingerprint, field3); +} +void free_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->md5_checksum, field4); +} +void free_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->name, field3); +} +void free_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->volume_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->local_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->secret, field3); +} +void free_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; } +} +void free_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->latitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->longitude, field2); +} +void free_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } +} +void free_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field2); +} +void free_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_photo (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field2); +} +void free_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_geo_point (D->geo_point, field1); +} +void free_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field3); +} +void free_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field5); +} +void free_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->thumb, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field6); +} +void free_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_video (D->video_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field2); +} +void free_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field3); +} +void free_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_audio (D->audio_id, field1); +} +void free_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->attributes, field3); +} +void free_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_file (D->thumb, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->attributes, field4); +} +void free_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_document (D->document_id, field1); +} +void free_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_geo_point (D->geo_point, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->provider, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->venue_id, field5); +} +void free_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_peer (D->peer, field1); +} +void free_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void free_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void free_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void free_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_input_geo_chat (D->geo_peer, field1); +} +void free_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } +} +void free_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } +} +void free_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); +} +void free_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; } +} +void free_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; } +} +void free_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->mute_until, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->sound, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->show_previews, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->events_mask, field4); +} +void free_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; } +} +void free_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; } +} +void free_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->crop_left, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->crop_top, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_double (D->crop_width, field3); +} +void free_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return; } +} +void free_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void free_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void free_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field1); +} +void free_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void free_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void free_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field1); +} +void free_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } +} +void free_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->short_name, field1); +} +void free_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } +} +void free_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } +} +void free_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; } +} +void free_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); +} +void free_ds_constructor_int (int *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return; } + tfree (D, sizeof (*D)); +} +void free_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f0, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f1, field2); +} +void free_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f0, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f1, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f2, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->f3, field4); +} +void free_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->text, field1); +} +void free_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->buttons, field1); +} +void free_ds_constructor_long (long long *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return; } + tfree (D, sizeof (*D)); +} +void free_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->to_id, field4); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_from_id, field5); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_date, field6); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->reply_to_msg_id, field7); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field10); + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_reply_markup (D->reply_markup, field11); + } +} +void free_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->to_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_action (D->action, field6); +} +void free_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void free_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field1); +} +void free_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field1); +} +void free_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void free_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->address, field2); +} +void free_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void free_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->inviter_id, field1); +} +void free_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } +} +void free_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field2); +} +void free_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_video (D->video, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field2); +} +void free_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_point (D->geo, field1); +} +void free_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field4); +} +void free_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } +} +void free_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_document (D->document, field1); +} +void free_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_audio (D->audio, field1); +} +void free_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_web_page (D->webpage, field1); +} +void free_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_point (D->geo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->provider, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->venue_id, field5); +} +void free_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field1); +} +void free_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_video (D->video, field1); +} +void free_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void free_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->country, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->this_dc, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->nearest_dc, field3); +} +void free_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->peer, field1); +} +void free_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void free_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void free_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void free_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return; } +} +void free_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->pq, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->q, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int256 (D->new_nonce, field6); +} +void free_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->pq, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->q, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int256 (D->new_nonce, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->expires_in, field7); +} +void free_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); +} +void free_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); +} +void free_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; } +} +void free_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; } +} +void free_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; } +} +void free_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->mute_until, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->sound, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->show_previews, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->events_mask, field4); +} +void free_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); +} +void free_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_point (D->geo, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->sizes, field6); +} +void free_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_point (D->geo, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->sizes, field7); +} +void free_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field1); +} +void free_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->location, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field5); +} +void free_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->location, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->bytes, field5); +} +void free_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return; } +} +void free_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void free_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void free_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field1); +} +void free_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void free_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void free_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field1); +} +void free_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field2); +} +void free_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); +} +void free_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); +} +void free_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->rows, field2); +} +void free_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->pq, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->server_public_key_fingerprints, field4); +} +void free_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->progress, field1); +} +void free_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->progress, field1); +} +void free_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->progress, field1); +} +void free_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->progress, field1); +} +void free_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void free_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->new_nonce_hash, field3); +} +void free_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->encrypted_answer, field3); +} +void free_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->g, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->dh_prime, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->g_a, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->server_time, field6); +} +void free_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->new_nonce_hash1, field3); +} +void free_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->new_nonce_hash2, field3); +} +void free_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int128 (D->new_nonce_hash3, field3); +} +void free_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->emoticon, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->documents, field2); +} +void free_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->short_name, field4); +} +void free_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return; } + tfree (D->data, D->len + 1); + tfree (D, sizeof (*D)); +} +void free_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message (D->message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field3); +} +void free_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->random_id, field2); +} +void free_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field3); +} +void free_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_send_message_action (D->action, field2); +} +void free_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_send_message_action (D->action, field3); +} +void free_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_participants (D->participants, field1); +} +void free_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_status (D->status, field2); +} +void free_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->username, field4); +} +void free_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_profile_photo (D->photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->previous, field4); +} +void free_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); +} +void free_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_contact_link (D->my_link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_contact_link (D->foreign_link, field3); +} +void free_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->auth_key_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->device, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->location, field4); +} +void free_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_chat_message (D->geo_message, field1); +} +void free_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_encrypted_message (D->encr_message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->qts, field2); +} +void free_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); +} +void free_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_encrypted_chat (D->encr_chat, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); +} +void free_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->max_date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); +} +void free_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->inviter_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field4); +} +void free_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field3); +} +void free_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->dc_options, field1); +} +void free_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->blocked, field2); +} +void free_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_notify_peer (D->notify_peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer_notify_settings (D->notify_settings, field2); +} +void free_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message_text, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->popup, field4); +} +void free_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_privacy_key (D->key, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->rules, field2); +} +void free_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone, field2); +} +void free_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->max_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field4); +} +void free_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->max_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field4); +} +void free_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_web_page (D->webpage, field1); +} +void free_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field3); +} +void free_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field3); +} +void free_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } +} +void free_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field7); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_from_id, field8); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_date, field9); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->reply_to_msg_id, field10); + } +} +void free_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->chat_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field8); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_from_id, field9); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_date, field10); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->reply_to_msg_id, field11); + } +} +void free_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_update (D->update, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); +} +void free_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->updates, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq_start, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field6); +} +void free_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->updates, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field5); +} +void free_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field4); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field5); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->username, field6); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone, field7); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_profile_photo (D->photo, field8); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_status (D->status, field9); + } + if (PTR2INT (var0) & (1 << 14)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->bot_info_version, field10); + } +} +void free_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user (D->user, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_contacts_link (D->link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->profile_photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_peer_notify_settings (D->notify_settings, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->blocked, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bot_info (D->bot_info, field6); +} +void free_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; } +} +void free_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->photo_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->photo_small, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_file_location (D->photo_big, field3); +} +void free_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void free_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->expires, field1); +} +void free_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->was_online, field1); +} +void free_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void free_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void free_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void free_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return; } + if (ODDP(T->params[0])) { return; } + struct paramed_type *var0 = T->params[0]; assert (var0); + struct paramed_type *var1 = INT2PTR (*D->f1); + tfree (D->f1, sizeof (*D->f1)); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + { + int i = 0; + while (i < multiplicity3) { + free_ds_type_any (D->f2[i ++], field3); + } + } + tfree (D->f2, sizeof (void *) * multiplicity3); +} +void free_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); +} +void free_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo_size (D->thumb, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field10); +} +void free_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->caption, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->mime_type, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->size, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo_size (D->thumb, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc_id, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->w, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->h, field12); +} +void free_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->sizes, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->color, field4); +} +void free_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->bg_color, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->color, field4); +} +void free_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); +} +void free_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); +} +void free_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->url, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->display_url, field4); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->type, field5); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->site_name, field6); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field7); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->description, field8); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field9); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->embed_url, field10); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->embed_type, field11); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->embed_width, field12); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->embed_height, field13); + } + if (PTR2INT (var0) & (1 << 7)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->duration, field14); + } + if (PTR2INT (var0) & (1 << 8)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->author, field15); + } +} +void free_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->authorizations, field1); +} +void free_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->new_salt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->email_unconfirmed_pattern, field2); +} +void free_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->current_salt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->new_salt, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->hint, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->has_recovery, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->email_unconfirmed_pattern, field5); +} +void free_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->new_salt, field2); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->new_password_hash, field3); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->hint, field4); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->email, field5); + } +} +void free_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->email, field1); +} +void free_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->rules, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_code_hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->send_call_timeout, field2); +} +void free_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user (D->user, field1); +} +void free_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->phone_registered, field1); +} +void free_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->bytes, field2); +} +void free_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->email_pattern, field1); +} +void free_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->phone_registered, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_code_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->send_call_timeout, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->is_password, field4); +} +void free_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->phone_registered, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_code_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->send_call_timeout, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->is_password, field4); +} +void free_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return; } + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + { + int i = 0; + while (i < multiplicity1) { + free_ds_type_any (D->key[i ++], field1); + } + } + tfree (D->key, sizeof (void *) * multiplicity1); +} +void free_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } +} +void free_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->ip, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->port, field4); +} +void free_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->ip, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->port, field5); +} +void free_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_binlog_encr_key (D->key, field2); +} +void free_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc, field1); +} +void free_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->dc, field1); +} +void free_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->root, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_binlog_encr_key (D->prime, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field3); +} +void free_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field1); +} +void free_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->qts, field1); +} +void free_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field1); +} +void free_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field1); +} +void free_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin, field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field6); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_binlog_encr_key (D->key, field7); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_binlog_encr_key (D->g_key, field8); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->state, field9); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->ttl, field10); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->layer, field11); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->in_seq_no, field12); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->last_in_seq_no, field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->out_seq_no, field14); + } + if (PTR2INT (var0) & (1 << 27)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->key_fingerprint, field15); + } +} +void free_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->exchange_id, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_binlog_encr_key (D->key, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->state, field5); + } +} +void free_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); +} +void free_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->first_name, field4); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->last_name, field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->username, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->real_first_name, field9); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->real_last_name, field10); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user_profile_photo (D->user_photo, field11); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->last_read_in, field12); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->last_read_out, field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bot_info (D->bot_info, field14); + } +} +void free_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->title, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_num, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->participants, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_photo (D->chat_photo, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->admin, field10); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->last_read_in, field11); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->last_read_out, field12); + } +} +void free_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->inviter_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field5); +} +void free_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->user_id, field3); +} +void free_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->old_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->new_id, field2); +} +void free_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->lid, field1); +} +void free_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->lid, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->to_type, field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->to_id, field5); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_from_id, field6); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->fwd_date, field7); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field8); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field9); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field10); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_action (D->action, field11); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->reply_id, field12); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_reply_markup (D->reply_markup, field13); + } +} +void free_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + tfree (D->flags, sizeof (*D->flags)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->lid, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->from_id, field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->to_type, field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->to_id, field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_decrypted_message_media (D->encr_media, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_decrypted_message_action (D->encr_action, field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_encrypted_file (D->file, field10); + } +} +void free_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_long (D->lid, field1); +} +void free_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } +} +void free_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->blocked, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->blocked, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; } +} +void free_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->contacts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->imported, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->retry_contacts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_contact_link (D->my_link, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_contact_link (D->foreign_link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user (D->user, field3); +} +void free_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field4); +} +void free_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field4); +} +void free_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_geo_chat_message (D->message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field4); +} +void free_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bool (D->critical, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->url, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->text, field4); +} +void free_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; } +} +void free_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->message, field1); +} +void free_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_user (D->user, field2); +} +void free_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->offset, field3); +} +void free_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field2); +} +void free_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; } +} +void free_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->packs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->sets, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->documents, field4); +} +void free_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_chat_full (D->full_chat, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field1); +} +void free_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->random, field1); +} +void free_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->g, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->version, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->random, field4); +} +void free_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->dialogs, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field4); +} +void free_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->dialogs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field5); +} +void free_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return; } +} +void free_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field4); +} +void free_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field1); +} +void free_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_encrypted_file (D->file, field2); +} +void free_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field5); +} +void free_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts_count, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->links, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field7); +} +void free_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_sticker_set (D->set, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->packs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->documents, field3); +} +void free_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; } +} +void free_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_string (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->stickers, field2); +} +void free_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_photo (D->photo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->photos, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field2); +} +void free_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->photos, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field3); +} +void free_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void free_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field2); +} +void free_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->new_messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->new_encrypted_messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->other_updates, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_updates_state (D->state, field6); +} +void free_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->new_messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->new_encrypted_messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->other_updates, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + free_ds_type_any (D->users, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_updates_state (D->intermediate_state, field6); +} +void free_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->qts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->seq, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->unread_count, field5); +} +void free_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_storage_file_type (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_int (D->mtime, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + free_ds_type_bytes (D->bytes, field3); +} +void free_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) { + free_ds_constructor_account_days_t_t_l (D, T); return; +} +void free_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T) { + switch (D->magic) { + case 0x586988d8: free_ds_constructor_audio_empty (D, T); return; + case 0xc7ac6496: free_ds_constructor_audio (D, T); return; + default: assert (0); + } +} +void free_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T) { + free_ds_constructor_authorization (D, T); return; +} +void free_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T) { + switch (D->magic) { + case 0xbc799737: free_ds_constructor_bool_false (D, T); return; + case 0x997275b5: free_ds_constructor_bool_true (D, T); return; + default: assert (0); + } +} +void free_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc27ac8c7: free_ds_constructor_bot_command (D, T); return; + case 0xb79d22ab: free_ds_constructor_bot_command_old (D, T); return; + default: assert (0); + } +} +void free_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) { + switch (D->magic) { + case 0xbb2e37ce: free_ds_constructor_bot_info_empty (D, T); return; + case 0x09cf585d: free_ds_constructor_bot_info (D, T); return; + default: assert (0); + } +} +void free_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T) { + free_ds_constructor_bytes (D, T); return; +} +void free_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9ba2d800: free_ds_constructor_chat_empty (D, T); return; + case 0x6e9c9bc7: free_ds_constructor_chat (D, T); return; + case 0xfb0ccc41: free_ds_constructor_chat_forbidden (D, T); return; + case 0x75eaea5a: free_ds_constructor_geo_chat (D, T); return; + default: assert (0); + } +} +void free_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) { + free_ds_constructor_chat_full (D, T); return; +} +void free_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5a686d7c: free_ds_constructor_chat_invite_already (D, T); return; + case 0xce917dcd: free_ds_constructor_chat_invite (D, T); return; + default: assert (0); + } +} +void free_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) { + free_ds_constructor_chat_located (D, T); return; +} +void free_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) { + free_ds_constructor_chat_participant (D, T); return; +} +void free_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0fd2bb8a: free_ds_constructor_chat_participants_forbidden (D, T); return; + case 0x7841b415: free_ds_constructor_chat_participants (D, T); return; + default: assert (0); + } +} +void free_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x37c1011c: free_ds_constructor_chat_photo_empty (D, T); return; + case 0x6153276a: free_ds_constructor_chat_photo (D, T); return; + default: assert (0); + } +} +void free_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) { + free_ds_constructor_client_d_h_inner_data (D, T); return; +} +void free_ds_type_config (struct tl_ds_config *D, struct paramed_type *T) { + free_ds_constructor_config (D, T); return; +} +void free_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T) { + free_ds_constructor_contact (D, T); return; +} +void free_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) { + free_ds_constructor_contact_blocked (D, T); return; +} +void free_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) { + free_ds_constructor_contact_found (D, T); return; +} +void free_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5f4f9247: free_ds_constructor_contact_link_unknown (D, T); return; + case 0xfeedd3ad: free_ds_constructor_contact_link_none (D, T); return; + case 0x268f3f59: free_ds_constructor_contact_link_has_phone (D, T); return; + case 0xd502c2d0: free_ds_constructor_contact_link_contact (D, T); return; + default: assert (0); + } +} +void free_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) { + free_ds_constructor_contact_status (D, T); return; +} +void free_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) { + free_ds_constructor_contact_suggested (D, T); return; +} +void free_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) { + switch (D->magic) { + case 0x2ec2a43c: free_ds_constructor_dc_option_l28 (D, T); return; + case 0x05d8c6cc: free_ds_constructor_dc_option (D, T); return; + default: assert (0); + } +} +void free_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x204d3878: free_ds_constructor_decrypted_message (D, T); return; + case 0x73164160: free_ds_constructor_decrypted_message_service (D, T); return; + default: assert (0); + } +} +void free_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0xa1733aec: free_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return; + case 0x0c4f40be: free_ds_constructor_decrypted_message_action_read_messages (D, T); return; + case 0x65614304: free_ds_constructor_decrypted_message_action_delete_messages (D, T); return; + case 0x8ac1f475: free_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return; + case 0x6719e45c: free_ds_constructor_decrypted_message_action_flush_history (D, T); return; + case 0x511110b0: free_ds_constructor_decrypted_message_action_resend (D, T); return; + case 0xf3048883: free_ds_constructor_decrypted_message_action_notify_layer (D, T); return; + case 0xccb27641: free_ds_constructor_decrypted_message_action_typing (D, T); return; + case 0xf3c9611b: free_ds_constructor_decrypted_message_action_request_key (D, T); return; + case 0x6fe1735b: free_ds_constructor_decrypted_message_action_accept_key (D, T); return; + case 0xdd05ec6b: free_ds_constructor_decrypted_message_action_abort_key (D, T); return; + case 0xec2e0b9b: free_ds_constructor_decrypted_message_action_commit_key (D, T); return; + case 0xa82fdd63: free_ds_constructor_decrypted_message_action_noop (D, T); return; + default: assert (0); + } +} +void free_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) { + free_ds_constructor_decrypted_message_layer (D, T); return; +} +void free_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x089f5c4a: free_ds_constructor_decrypted_message_media_empty (D, T); return; + case 0x32798a8c: free_ds_constructor_decrypted_message_media_photo (D, T); return; + case 0x35480a59: free_ds_constructor_decrypted_message_media_geo_point (D, T); return; + case 0x588a0a97: free_ds_constructor_decrypted_message_media_contact (D, T); return; + case 0xb095434b: free_ds_constructor_decrypted_message_media_document (D, T); return; + case 0x524a415d: free_ds_constructor_decrypted_message_media_video (D, T); return; + case 0x57e0a9cb: free_ds_constructor_decrypted_message_media_audio (D, T); return; + case 0xfa95b0dd: free_ds_constructor_decrypted_message_media_external_document (D, T); return; + case 0x4cee6ef3: free_ds_constructor_decrypted_message_media_video_l12 (D, T); return; + case 0x6080758f: free_ds_constructor_decrypted_message_media_audio_l12 (D, T); return; + default: assert (0); + } +} +void free_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T) { + free_ds_constructor_dialog (D, T); return; +} +void free_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) { + free_ds_constructor_disabled_feature (D, T); return; +} +void free_ds_type_document (struct tl_ds_document *D, struct paramed_type *T) { + switch (D->magic) { + case 0x36f8c871: free_ds_constructor_document_empty (D, T); return; + case 0xf9a39f4f: free_ds_constructor_document (D, T); return; + case 0x9efc6326: free_ds_constructor_document_l19 (D, T); return; + default: assert (0); + } +} +void free_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) { + switch (D->magic) { + case 0x6c37c15c: free_ds_constructor_document_attribute_image_size (D, T); return; + case 0x11b58939: free_ds_constructor_document_attribute_animated (D, T); return; + case 0x994c9882: free_ds_constructor_document_attribute_sticker_l28 (D, T); return; + case 0x3a556302: free_ds_constructor_document_attribute_sticker (D, T); return; + case 0x5910cccb: free_ds_constructor_document_attribute_video (D, T); return; + case 0x051448e5: free_ds_constructor_document_attribute_audio (D, T); return; + case 0x15590068: free_ds_constructor_document_attribute_filename (D, T); return; + default: assert (0); + } +} +void free_ds_type_double (double *D, struct paramed_type *T) { + free_ds_constructor_double (D, T); return; +} +void free_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + switch (D->magic) { + case 0xab7ec0a0: free_ds_constructor_encrypted_chat_empty (D, T); return; + case 0x3bf703dc: free_ds_constructor_encrypted_chat_waiting (D, T); return; + case 0xc878527e: free_ds_constructor_encrypted_chat_requested (D, T); return; + case 0xfa56ce36: free_ds_constructor_encrypted_chat (D, T); return; + case 0x13d6dd27: free_ds_constructor_encrypted_chat_discarded (D, T); return; + default: assert (0); + } +} +void free_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc21f497e: free_ds_constructor_encrypted_file_empty (D, T); return; + case 0x4a70994c: free_ds_constructor_encrypted_file (D, T); return; + default: assert (0); + } +} +void free_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0xed18c118: free_ds_constructor_encrypted_message (D, T); return; + case 0x23734b06: free_ds_constructor_encrypted_message_service (D, T); return; + default: assert (0); + } +} +void free_ds_type_error (struct tl_ds_error *D, struct paramed_type *T) { + free_ds_constructor_error (D, T); return; +} +void free_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + switch (D->magic) { + case 0x69df3769: free_ds_constructor_chat_invite_empty (D, T); return; + case 0xfc2e05bc: free_ds_constructor_chat_invite_exported (D, T); return; + default: assert (0); + } +} +void free_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T) { + switch (D->magic) { + case 0x7c596b46: free_ds_constructor_file_location_unavailable (D, T); return; + case 0x53d69076: free_ds_constructor_file_location (D, T); return; + default: assert (0); + } +} +void free_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x60311a9b: free_ds_constructor_geo_chat_message_empty (D, T); return; + case 0x4505f8e1: free_ds_constructor_geo_chat_message (D, T); return; + case 0xd34fa24e: free_ds_constructor_geo_chat_message_service (D, T); return; + default: assert (0); + } +} +void free_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1117dd5f: free_ds_constructor_geo_point_empty (D, T); return; + case 0x2049d70c: free_ds_constructor_geo_point (D, T); return; + default: assert (0); + } +} +void free_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) { + free_ds_constructor_imported_contact (D, T); return; +} +void free_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) { + free_ds_constructor_input_app_event (D, T); return; +} +void free_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) { + switch (D->magic) { + case 0xd95adc84: free_ds_constructor_input_audio_empty (D, T); return; + case 0x77d440ff: free_ds_constructor_input_audio (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1ca48f57: free_ds_constructor_input_chat_photo_empty (D, T); return; + case 0x94254732: free_ds_constructor_input_chat_uploaded_photo (D, T); return; + case 0xb2e1bf08: free_ds_constructor_input_chat_photo (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) { + free_ds_constructor_input_phone_contact (D, T); return; +} +void free_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T) { + switch (D->magic) { + case 0x72f0eaae: free_ds_constructor_input_document_empty (D, T); return; + case 0x18798952: free_ds_constructor_input_document (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) { + free_ds_constructor_input_encrypted_chat (D, T); return; +} +void free_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1837c364: free_ds_constructor_input_encrypted_file_empty (D, T); return; + case 0x64bd0306: free_ds_constructor_input_encrypted_file_uploaded (D, T); return; + case 0x5a17b5e5: free_ds_constructor_input_encrypted_file (D, T); return; + case 0x2dc173c8: free_ds_constructor_input_encrypted_file_big_uploaded (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf52ff27f: free_ds_constructor_input_file (D, T); return; + case 0xfa4f0bb5: free_ds_constructor_input_file_big (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + switch (D->magic) { + case 0x14637196: free_ds_constructor_input_file_location (D, T); return; + case 0x3d0364ec: free_ds_constructor_input_video_file_location (D, T); return; + case 0xf5235d55: free_ds_constructor_input_encrypted_file_location (D, T); return; + case 0x74dc404d: free_ds_constructor_input_audio_file_location (D, T); return; + case 0x4e45abe9: free_ds_constructor_input_document_file_location (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) { + free_ds_constructor_input_geo_chat (D, T); return; +} +void free_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe4c123d6: free_ds_constructor_input_geo_point_empty (D, T); return; + case 0xf3b7acc9: free_ds_constructor_input_geo_point (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9664f57f: free_ds_constructor_input_media_empty (D, T); return; + case 0xf7aff1c0: free_ds_constructor_input_media_uploaded_photo (D, T); return; + case 0xe9bfb4f3: free_ds_constructor_input_media_photo (D, T); return; + case 0xf9c44144: free_ds_constructor_input_media_geo_point (D, T); return; + case 0xa6e45987: free_ds_constructor_input_media_contact (D, T); return; + case 0xe13fd4bc: free_ds_constructor_input_media_uploaded_video (D, T); return; + case 0x96fb97dc: free_ds_constructor_input_media_uploaded_thumb_video (D, T); return; + case 0x936a4ebd: free_ds_constructor_input_media_video (D, T); return; + case 0x4e498cab: free_ds_constructor_input_media_uploaded_audio (D, T); return; + case 0x89938781: free_ds_constructor_input_media_audio (D, T); return; + case 0xffe76b78: free_ds_constructor_input_media_uploaded_document (D, T); return; + case 0x41481486: free_ds_constructor_input_media_uploaded_thumb_document (D, T); return; + case 0xd184e841: free_ds_constructor_input_media_document (D, T); return; + case 0x2827a81a: free_ds_constructor_input_media_venue (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb8bc5b0c: free_ds_constructor_input_notify_peer (D, T); return; + case 0x193b4417: free_ds_constructor_input_notify_users (D, T); return; + case 0x4a95e84e: free_ds_constructor_input_notify_chats (D, T); return; + case 0xa429b886: free_ds_constructor_input_notify_all (D, T); return; + case 0x4d8ddec8: free_ds_constructor_input_notify_geo_chat_peer (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x7f3b18ea: free_ds_constructor_input_peer_empty (D, T); return; + case 0x7da07ec9: free_ds_constructor_input_peer_self (D, T); return; + case 0x1023dbe8: free_ds_constructor_input_peer_contact (D, T); return; + case 0x9b447325: free_ds_constructor_input_peer_foreign (D, T); return; + case 0x179be863: free_ds_constructor_input_peer_chat (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf03064d8: free_ds_constructor_input_peer_notify_events_empty (D, T); return; + case 0xe86a2c74: free_ds_constructor_input_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) { + free_ds_constructor_input_peer_notify_settings (D, T); return; +} +void free_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1cd7bf0d: free_ds_constructor_input_photo_empty (D, T); return; + case 0xfb95c6c4: free_ds_constructor_input_photo (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + switch (D->magic) { + case 0xade6b004: free_ds_constructor_input_photo_crop_auto (D, T); return; + case 0xd9915325: free_ds_constructor_input_photo_crop (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) { + free_ds_constructor_input_privacy_key_status_timestamp (D, T); return; +} +void free_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0d09e07b: free_ds_constructor_input_privacy_value_allow_contacts (D, T); return; + case 0x184b35ce: free_ds_constructor_input_privacy_value_allow_all (D, T); return; + case 0x131cc67f: free_ds_constructor_input_privacy_value_allow_users (D, T); return; + case 0x0ba52007: free_ds_constructor_input_privacy_value_disallow_contacts (D, T); return; + case 0xd66b66c9: free_ds_constructor_input_privacy_value_disallow_all (D, T); return; + case 0x90110467: free_ds_constructor_input_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + switch (D->magic) { + case 0xffb62b95: free_ds_constructor_input_sticker_set_empty (D, T); return; + case 0x9de7a269: free_ds_constructor_input_sticker_set_i_d (D, T); return; + case 0x861cc8a0: free_ds_constructor_input_sticker_set_short_name (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb98886cf: free_ds_constructor_input_user_empty (D, T); return; + case 0xf7c1b13f: free_ds_constructor_input_user_self (D, T); return; + case 0x86e94f65: free_ds_constructor_input_user_contact (D, T); return; + case 0x655e74ff: free_ds_constructor_input_user_foreign (D, T); return; + default: assert (0); + } +} +void free_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5508ec75: free_ds_constructor_input_video_empty (D, T); return; + case 0xee579652: free_ds_constructor_input_video (D, T); return; + default: assert (0); + } +} +void free_ds_type_int (int *D, struct paramed_type *T) { + free_ds_constructor_int (D, T); return; +} +void free_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T) { + free_ds_constructor_int128 (D, T); return; +} +void free_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T) { + free_ds_constructor_int256 (D, T); return; +} +void free_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) { + free_ds_constructor_keyboard_button (D, T); return; +} +void free_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) { + free_ds_constructor_keyboard_button_row (D, T); return; +} +void free_ds_type_long (long long *D, struct paramed_type *T) { + free_ds_constructor_long (D, T); return; +} +void free_ds_type_message (struct tl_ds_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x83e5de54: free_ds_constructor_message_empty (D, T); return; + case 0xc3060325: free_ds_constructor_message (D, T); return; + case 0x1d86f70e: free_ds_constructor_message_service (D, T); return; + default: assert (0); + } +} +void free_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb6aef7b0: free_ds_constructor_message_action_empty (D, T); return; + case 0xa6638b9a: free_ds_constructor_message_action_chat_create (D, T); return; + case 0xb5a1ce5a: free_ds_constructor_message_action_chat_edit_title (D, T); return; + case 0x7fcb13a8: free_ds_constructor_message_action_chat_edit_photo (D, T); return; + case 0x95e3fbef: free_ds_constructor_message_action_chat_delete_photo (D, T); return; + case 0x5e3cfc4b: free_ds_constructor_message_action_chat_add_user (D, T); return; + case 0xb2ae9b0c: free_ds_constructor_message_action_chat_delete_user (D, T); return; + case 0x6f038ebc: free_ds_constructor_message_action_geo_chat_create (D, T); return; + case 0x0c7d53de: free_ds_constructor_message_action_geo_chat_checkin (D, T); return; + case 0xf89cf5e8: free_ds_constructor_message_action_chat_joined_by_link (D, T); return; + default: assert (0); + } +} +void free_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3ded6320: free_ds_constructor_message_media_empty (D, T); return; + case 0x3d8ce53d: free_ds_constructor_message_media_photo (D, T); return; + case 0x5bcf1675: free_ds_constructor_message_media_video (D, T); return; + case 0x56e0d474: free_ds_constructor_message_media_geo (D, T); return; + case 0x5e7d2f39: free_ds_constructor_message_media_contact (D, T); return; + case 0x9f84f49e: free_ds_constructor_message_media_unsupported (D, T); return; + case 0x2fda2204: free_ds_constructor_message_media_document (D, T); return; + case 0xc6b68300: free_ds_constructor_message_media_audio (D, T); return; + case 0xa32dd600: free_ds_constructor_message_media_web_page (D, T); return; + case 0x7912b71f: free_ds_constructor_message_media_venue (D, T); return; + case 0xc8c45a2a: free_ds_constructor_message_media_photo_l27 (D, T); return; + case 0xa2d24290: free_ds_constructor_message_media_video_l27 (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) { + switch (D->magic) { + case 0x57e2f66c: free_ds_constructor_input_messages_filter_empty (D, T); return; + case 0x9609a51c: free_ds_constructor_input_messages_filter_photos (D, T); return; + case 0x9fc00e65: free_ds_constructor_input_messages_filter_video (D, T); return; + case 0x56e9f0e4: free_ds_constructor_input_messages_filter_photo_video (D, T); return; + case 0xd95e73bb: free_ds_constructor_input_messages_filter_photo_video_documents (D, T); return; + case 0x9eddf188: free_ds_constructor_input_messages_filter_document (D, T); return; + case 0xcfc87522: free_ds_constructor_input_messages_filter_audio (D, T); return; + default: assert (0); + } +} +void free_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) { + free_ds_constructor_nearest_dc (D, T); return; +} +void free_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9fd40bd8: free_ds_constructor_notify_peer (D, T); return; + case 0xb4c83b4c: free_ds_constructor_notify_users (D, T); return; + case 0xc007cec3: free_ds_constructor_notify_chats (D, T); return; + case 0x74d07c60: free_ds_constructor_notify_all (D, T); return; + default: assert (0); + } +} +void free_ds_type_null (struct tl_ds_null *D, struct paramed_type *T) { + free_ds_constructor_null (D, T); return; +} +void free_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + switch (D->magic) { + case 0x83c95aec: free_ds_constructor_p_q_inner_data (D, T); return; + case 0x3c6a84d4: free_ds_constructor_p_q_inner_data_temp (D, T); return; + default: assert (0); + } +} +void free_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9db1bc6d: free_ds_constructor_peer_user (D, T); return; + case 0xbad0e5bb: free_ds_constructor_peer_chat (D, T); return; + default: assert (0); + } +} +void free_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + switch (D->magic) { + case 0xadd53cb3: free_ds_constructor_peer_notify_events_empty (D, T); return; + case 0x6d1ded88: free_ds_constructor_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void free_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + switch (D->magic) { + case 0x70a68512: free_ds_constructor_peer_notify_settings_empty (D, T); return; + case 0x8d5e11ee: free_ds_constructor_peer_notify_settings (D, T); return; + default: assert (0); + } +} +void free_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x2331b22d: free_ds_constructor_photo_empty (D, T); return; + case 0xc3838076: free_ds_constructor_photo (D, T); return; + case 0x22b56751: free_ds_constructor_photo_l27 (D, T); return; + default: assert (0); + } +} +void free_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0e17e23c: free_ds_constructor_photo_size_empty (D, T); return; + case 0x77bfb61b: free_ds_constructor_photo_size (D, T); return; + case 0xe9a734fa: free_ds_constructor_photo_cached_size (D, T); return; + default: assert (0); + } +} +void free_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) { + free_ds_constructor_privacy_key_status_timestamp (D, T); return; +} +void free_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + switch (D->magic) { + case 0xfffe1bac: free_ds_constructor_privacy_value_allow_contacts (D, T); return; + case 0x65427b82: free_ds_constructor_privacy_value_allow_all (D, T); return; + case 0x4d5bbe0c: free_ds_constructor_privacy_value_allow_users (D, T); return; + case 0xf888fa1a: free_ds_constructor_privacy_value_disallow_contacts (D, T); return; + case 0x8b73e763: free_ds_constructor_privacy_value_disallow_all (D, T); return; + case 0x0c7f49b7: free_ds_constructor_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void free_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) { + free_ds_constructor_received_notify_message (D, T); return; +} +void free_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) { + switch (D->magic) { + case 0xa03e5b85: free_ds_constructor_reply_keyboard_hide (D, T); return; + case 0xf4108aa0: free_ds_constructor_reply_keyboard_force_reply (D, T); return; + case 0x3502758c: free_ds_constructor_reply_keyboard_markup (D, T); return; + default: assert (0); + } +} +void free_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) { + free_ds_constructor_res_p_q (D, T); return; +} +void free_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0x16bf744e: free_ds_constructor_send_message_typing_action (D, T); return; + case 0xfd5ec8f5: free_ds_constructor_send_message_cancel_action (D, T); return; + case 0xa187d66f: free_ds_constructor_send_message_record_video_action (D, T); return; + case 0x92042ff7: free_ds_constructor_send_message_upload_video_action_l27 (D, T); return; + case 0xe9763aec: free_ds_constructor_send_message_upload_video_action (D, T); return; + case 0xd52f73f7: free_ds_constructor_send_message_record_audio_action (D, T); return; + case 0xe6ac8a6f: free_ds_constructor_send_message_upload_audio_action_l27 (D, T); return; + case 0xf351d7ab: free_ds_constructor_send_message_upload_audio_action (D, T); return; + case 0xd1d34a26: free_ds_constructor_send_message_upload_photo_action (D, T); return; + case 0x8faee98e: free_ds_constructor_send_message_upload_document_action_l27 (D, T); return; + case 0xaa0cd9e4: free_ds_constructor_send_message_upload_document_action (D, T); return; + case 0x176f8ba1: free_ds_constructor_send_message_geo_location_action (D, T); return; + case 0x628cbc6f: free_ds_constructor_send_message_choose_contact_action (D, T); return; + default: assert (0); + } +} +void free_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + switch (D->magic) { + case 0x79cb045d: free_ds_constructor_server_d_h_params_fail (D, T); return; + case 0xd0e8075c: free_ds_constructor_server_d_h_params_ok (D, T); return; + default: assert (0); + } +} +void free_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) { + free_ds_constructor_server_d_h_inner_data (D, T); return; +} +void free_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3bcbf734: free_ds_constructor_dh_gen_ok (D, T); return; + case 0x46dc1fb9: free_ds_constructor_dh_gen_retry (D, T); return; + case 0xa69dae02: free_ds_constructor_dh_gen_fail (D, T); return; + default: assert (0); + } +} +void free_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) { + free_ds_constructor_sticker_pack (D, T); return; +} +void free_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) { + free_ds_constructor_sticker_set (D, T); return; +} +void free_ds_type_string (struct tl_ds_string *D, struct paramed_type *T) { + free_ds_constructor_string (D, T); return; +} +void free_ds_type_update (struct tl_ds_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1f2b0afd: free_ds_constructor_update_new_message (D, T); return; + case 0x4e90bfd6: free_ds_constructor_update_message_i_d (D, T); return; + case 0xa20db0e5: free_ds_constructor_update_delete_messages (D, T); return; + case 0x5c486927: free_ds_constructor_update_user_typing (D, T); return; + case 0x9a65ea1f: free_ds_constructor_update_chat_user_typing (D, T); return; + case 0x07761198: free_ds_constructor_update_chat_participants (D, T); return; + case 0x1bfbd823: free_ds_constructor_update_user_status (D, T); return; + case 0xa7332b73: free_ds_constructor_update_user_name (D, T); return; + case 0x95313b0c: free_ds_constructor_update_user_photo (D, T); return; + case 0x2575bbb9: free_ds_constructor_update_contact_registered (D, T); return; + case 0x9d2e67c5: free_ds_constructor_update_contact_link (D, T); return; + case 0x8f06529a: free_ds_constructor_update_new_authorization (D, T); return; + case 0x5a68e3f7: free_ds_constructor_update_new_geo_chat_message (D, T); return; + case 0x12bcbd9a: free_ds_constructor_update_new_encrypted_message (D, T); return; + case 0x1710f156: free_ds_constructor_update_encrypted_chat_typing (D, T); return; + case 0xb4a2e88d: free_ds_constructor_update_encryption (D, T); return; + case 0x38fe25b7: free_ds_constructor_update_encrypted_messages_read (D, T); return; + case 0x3a0eeb22: free_ds_constructor_update_chat_participant_add (D, T); return; + case 0x6e5f8c22: free_ds_constructor_update_chat_participant_delete (D, T); return; + case 0x8e5e9873: free_ds_constructor_update_dc_options (D, T); return; + case 0x80ece81a: free_ds_constructor_update_user_blocked (D, T); return; + case 0xbec268ef: free_ds_constructor_update_notify_settings (D, T); return; + case 0x382dd3e4: free_ds_constructor_update_service_notification (D, T); return; + case 0xee3b272a: free_ds_constructor_update_privacy (D, T); return; + case 0x12b9417b: free_ds_constructor_update_user_phone (D, T); return; + case 0x9961fd5c: free_ds_constructor_update_read_history_inbox (D, T); return; + case 0x2f2f21bf: free_ds_constructor_update_read_history_outbox (D, T); return; + case 0x2cc36971: free_ds_constructor_update_web_page (D, T); return; + case 0x68c13933: free_ds_constructor_update_read_messages_contents (D, T); return; + case 0x03114739: free_ds_constructor_update_msg_update (D, T); return; + default: assert (0); + } +} +void free_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe317af7e: free_ds_constructor_updates_too_long (D, T); return; + case 0xed5c2127: free_ds_constructor_update_short_message (D, T); return; + case 0x52238b3c: free_ds_constructor_update_short_chat_message (D, T); return; + case 0x78d4dec1: free_ds_constructor_update_short (D, T); return; + case 0x725b04c3: free_ds_constructor_updates_combined (D, T); return; + case 0x74ae4240: free_ds_constructor_updates (D, T); return; + default: assert (0); + } +} +void free_ds_type_user (struct tl_ds_user *D, struct paramed_type *T) { + switch (D->magic) { + case 0x200250ba: free_ds_constructor_user_empty (D, T); return; + case 0x22e49072: free_ds_constructor_user (D, T); return; + default: assert (0); + } +} +void free_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T) { + free_ds_constructor_user_full (D, T); return; +} +void free_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x4f11bae1: free_ds_constructor_user_profile_photo_empty (D, T); return; + case 0xd559d8c8: free_ds_constructor_user_profile_photo (D, T); return; + default: assert (0); + } +} +void free_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T) { + switch (D->magic) { + case 0x09d05049: free_ds_constructor_user_status_empty (D, T); return; + case 0xedb93949: free_ds_constructor_user_status_online (D, T); return; + case 0x008c703f: free_ds_constructor_user_status_offline (D, T); return; + case 0xe26f42f1: free_ds_constructor_user_status_recently (D, T); return; + case 0x07bf09fc: free_ds_constructor_user_status_last_week (D, T); return; + case 0x77ebc742: free_ds_constructor_user_status_last_month (D, T); return; + default: assert (0); + } +} +void free_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T) { + free_ds_constructor_vector (D, T); return; +} +void free_ds_type_video (struct tl_ds_video *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc10658a8: free_ds_constructor_video_empty (D, T); return; + case 0xee9f4a4d: free_ds_constructor_video (D, T); return; + case 0x388fa391: free_ds_constructor_video_l27 (D, T); return; + default: assert (0); + } +} +void free_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) { + switch (D->magic) { + case 0xccb03657: free_ds_constructor_wall_paper (D, T); return; + case 0x63117f24: free_ds_constructor_wall_paper_solid (D, T); return; + default: assert (0); + } +} +void free_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T) { + switch (D->magic) { + case 0xeb1477e8: free_ds_constructor_web_page_empty (D, T); return; + case 0xc586da1c: free_ds_constructor_web_page_pending (D, T); return; + case 0xa31ea0b5: free_ds_constructor_web_page (D, T); return; + default: assert (0); + } +} +void free_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) { + free_ds_constructor_account_authorizations (D, T); return; +} +void free_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T) { + switch (D->magic) { + case 0x96dabc18: free_ds_constructor_account_no_password (D, T); return; + case 0x7c18141c: free_ds_constructor_account_password (D, T); return; + default: assert (0); + } +} +void free_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) { + free_ds_constructor_account_password_input_settings (D, T); return; +} +void free_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) { + free_ds_constructor_account_password_settings (D, T); return; +} +void free_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) { + free_ds_constructor_account_privacy_rules (D, T); return; +} +void free_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) { + free_ds_constructor_account_sent_change_phone_code (D, T); return; +} +void free_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) { + free_ds_constructor_auth_authorization (D, T); return; +} +void free_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) { + free_ds_constructor_auth_checked_phone (D, T); return; +} +void free_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) { + free_ds_constructor_auth_exported_authorization (D, T); return; +} +void free_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) { + free_ds_constructor_auth_password_recovery (D, T); return; +} +void free_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + switch (D->magic) { + case 0xefed51d9: free_ds_constructor_auth_sent_code (D, T); return; + case 0xe325edcf: free_ds_constructor_auth_sent_app_code (D, T); return; + default: assert (0); + } +} +void free_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) { + free_ds_constructor_binlog_encr_key (D, T); return; +} +void free_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3b06de69: free_ds_constructor_binlog_start (D, T); return; + case 0xf96feb32: free_ds_constructor_binlog_dc_option (D, T); return; + case 0x7c0d22d8: free_ds_constructor_binlog_dc_option_new (D, T); return; + case 0x71e8c156: free_ds_constructor_binlog_auth_key (D, T); return; + case 0x9e83dbdc: free_ds_constructor_binlog_default_dc (D, T); return; + case 0x26451bb5: free_ds_constructor_binlog_dc_signed (D, T); return; + case 0x68a870e8: free_ds_constructor_binlog_our_id (D, T); return; + case 0xeaeb7826: free_ds_constructor_binlog_set_dh_params (D, T); return; + case 0x2ca8c939: free_ds_constructor_binlog_set_pts (D, T); return; + case 0xd95738ac: free_ds_constructor_binlog_set_qts (D, T); return; + case 0x1d0f4b52: free_ds_constructor_binlog_set_date (D, T); return; + case 0x6eeb2989: free_ds_constructor_binlog_set_seq (D, T); return; + case 0xee1b38e8: free_ds_constructor_binlog_encr_chat_delete (D, T); return; + case 0x84977251: free_ds_constructor_binlog_encr_chat_new (D, T); return; + case 0x9d49488d: free_ds_constructor_binlog_encr_chat_exchange_new (D, T); return; + case 0xac55d447: free_ds_constructor_binlog_user_delete (D, T); return; + case 0x127cf2f9: free_ds_constructor_binlog_user_new (D, T); return; + case 0x0a10aa92: free_ds_constructor_binlog_chat_new (D, T); return; + case 0x535475ea: free_ds_constructor_binlog_chat_add_participant (D, T); return; + case 0x7dd1a1a2: free_ds_constructor_binlog_chat_del_participant (D, T); return; + case 0x3c873416: free_ds_constructor_binlog_set_msg_id (D, T); return; + case 0x847e77b1: free_ds_constructor_binlog_message_delete (D, T); return; + case 0x427cfcdb: free_ds_constructor_binlog_message_new (D, T); return; + case 0x6cf7cabc: free_ds_constructor_binlog_message_encr_new (D, T); return; + case 0x6dd4d85f: free_ds_constructor_binlog_msg_update (D, T); return; + case 0x83327955: free_ds_constructor_binlog_reset_authorization (D, T); return; + default: assert (0); + } +} +void free_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1c138d15: free_ds_constructor_contacts_blocked (D, T); return; + case 0x900802a1: free_ds_constructor_contacts_blocked_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb74ba9d2: free_ds_constructor_contacts_contacts_not_modified (D, T); return; + case 0x6f8b8cb2: free_ds_constructor_contacts_contacts (D, T); return; + default: assert (0); + } +} +void free_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) { + free_ds_constructor_contacts_found (D, T); return; +} +void free_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) { + free_ds_constructor_contacts_imported_contacts (D, T); return; +} +void free_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) { + free_ds_constructor_contacts_link (D, T); return; +} +void free_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) { + free_ds_constructor_contacts_suggested (D, T); return; +} +void free_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) { + free_ds_constructor_geochats_located (D, T); return; +} +void free_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + switch (D->magic) { + case 0xd1526db1: free_ds_constructor_geochats_messages (D, T); return; + case 0xbc5863e8: free_ds_constructor_geochats_messages_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) { + free_ds_constructor_geochats_stated_message (D, T); return; +} +void free_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8987f311: free_ds_constructor_help_app_update (D, T); return; + case 0xc45a6536: free_ds_constructor_help_no_app_update (D, T); return; + default: assert (0); + } +} +void free_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) { + free_ds_constructor_help_invite_text (D, T); return; +} +void free_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T) { + free_ds_constructor_help_support (D, T); return; +} +void free_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) { + free_ds_constructor_messages_affected_history (D, T); return; +} +void free_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) { + free_ds_constructor_messages_affected_messages (D, T); return; +} +void free_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe86602c3: free_ds_constructor_messages_all_stickers_not_modified (D, T); return; + case 0x5ce352ec: free_ds_constructor_messages_all_stickers (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) { + free_ds_constructor_messages_chat_full (D, T); return; +} +void free_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) { + free_ds_constructor_messages_chats (D, T); return; +} +void free_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc0e24635: free_ds_constructor_messages_dh_config_not_modified (D, T); return; + case 0x2c221edd: free_ds_constructor_messages_dh_config (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + switch (D->magic) { + case 0x15ba6c40: free_ds_constructor_messages_dialogs (D, T); return; + case 0x71e094f3: free_ds_constructor_messages_dialogs_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) { + free_ds_constructor_messages_message_empty (D, T); return; +} +void free_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8c718e87: free_ds_constructor_messages_messages (D, T); return; + case 0x0b446ae3: free_ds_constructor_messages_messages_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x560f8935: free_ds_constructor_messages_sent_encrypted_message (D, T); return; + case 0x9493ff32: free_ds_constructor_messages_sent_encrypted_file (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x4c3d47f3: free_ds_constructor_messages_sent_message (D, T); return; + case 0x35a1a663: free_ds_constructor_messages_sent_message_link (D, T); return; + default: assert (0); + } +} +void free_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) { + free_ds_constructor_messages_sticker_set (D, T); return; +} +void free_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf1749a22: free_ds_constructor_messages_stickers_not_modified (D, T); return; + case 0x8a8ecd32: free_ds_constructor_messages_stickers (D, T); return; + default: assert (0); + } +} +void free_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) { + free_ds_constructor_photos_photo (D, T); return; +} +void free_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8dca6aa5: free_ds_constructor_photos_photos (D, T); return; + case 0x15051f54: free_ds_constructor_photos_photos_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + switch (D->magic) { + case 0xaa963b05: free_ds_constructor_storage_file_unknown (D, T); return; + case 0x007efe0e: free_ds_constructor_storage_file_jpeg (D, T); return; + case 0xcae1aadf: free_ds_constructor_storage_file_gif (D, T); return; + case 0x0a4f63c0: free_ds_constructor_storage_file_png (D, T); return; + case 0xae1e508d: free_ds_constructor_storage_file_pdf (D, T); return; + case 0x528a0677: free_ds_constructor_storage_file_mp3 (D, T); return; + case 0x4b09ebbc: free_ds_constructor_storage_file_mov (D, T); return; + case 0x40bc6f52: free_ds_constructor_storage_file_partial (D, T); return; + case 0xb3cea0e4: free_ds_constructor_storage_file_mp4 (D, T); return; + case 0x1081464c: free_ds_constructor_storage_file_webp (D, T); return; + default: assert (0); + } +} +void free_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5d75a138: free_ds_constructor_updates_difference_empty (D, T); return; + case 0x00f49ca0: free_ds_constructor_updates_difference (D, T); return; + case 0xa8fb1981: free_ds_constructor_updates_difference_slice (D, T); return; + default: assert (0); + } +} +void free_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) { + free_ds_constructor_updates_state (D, T); return; +} +void free_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) { + free_ds_constructor_upload_file (D, T); return; +} +void free_ds_type_any (void *D, struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: free_ds_type_account_days_t_t_l (D, T); return; + case 0x472f5020: free_ds_type_account_days_t_t_l (D, T); return; + case 0x9fc5ec4e: free_ds_type_audio (D, T); return; + case 0x603a13b1: free_ds_type_audio (D, T); return; + case 0x7bf2e6f6: free_ds_type_authorization (D, T); return; + case 0x840d1909: free_ds_type_authorization (D, T); return; + case 0x250be282: free_ds_type_bool (D, T); return; + case 0xdaf41d7d: free_ds_type_bool (D, T); return; + case 0x75e7ea6c: free_ds_type_bot_command (D, T); return; + case 0x8a181593: free_ds_type_bot_command (D, T); return; + case 0xb2e16f93: free_ds_type_bot_info (D, T); return; + case 0x4d1e906c: free_ds_type_bot_info (D, T); return; + case 0x0ee1379f: free_ds_type_bytes (D, T); return; + case 0xf11ec860: free_ds_type_bytes (D, T); return; + case 0x7bd865dc: free_ds_type_chat (D, T); return; + case 0x84279a23: free_ds_type_chat (D, T); return; + case 0x2e02a614: free_ds_type_chat_full (D, T); return; + case 0xd1fd59eb: free_ds_type_chat_full (D, T); return; + case 0x94f910b1: free_ds_type_chat_invite (D, T); return; + case 0x6b06ef4e: free_ds_type_chat_invite (D, T); return; + case 0x3631cf4c: free_ds_type_chat_located (D, T); return; + case 0xc9ce30b3: free_ds_type_chat_located (D, T); return; + case 0xc8d7493e: free_ds_type_chat_participant (D, T); return; + case 0x3728b6c1: free_ds_type_chat_participant (D, T); return; + case 0x77930f9f: free_ds_type_chat_participants (D, T); return; + case 0x886cf060: free_ds_type_chat_participants (D, T); return; + case 0x56922676: free_ds_type_chat_photo (D, T); return; + case 0xa96dd989: free_ds_type_chat_photo (D, T); return; + case 0x6643b654: free_ds_type_client_d_h_inner_data (D, T); return; + case 0x99bc49ab: free_ds_type_client_d_h_inner_data (D, T); return; + case 0x4e32b894: free_ds_type_config (D, T); return; + case 0xb1cd476b: free_ds_type_config (D, T); return; + case 0xf911c994: free_ds_type_contact (D, T); return; + case 0x06ee366b: free_ds_type_contact (D, T); return; + case 0x561bc879: free_ds_type_contact_blocked (D, T); return; + case 0xa9e43786: free_ds_type_contact_blocked (D, T); return; + case 0xea879f95: free_ds_type_contact_found (D, T); return; + case 0x1578606a: free_ds_type_contact_found (D, T); return; + case 0x522fbc63: free_ds_type_contact_link (D, T); return; + case 0xadd0439c: free_ds_type_contact_link (D, T); return; + case 0xd3680c61: free_ds_type_contact_status (D, T); return; + case 0x2c97f39e: free_ds_type_contact_status (D, T); return; + case 0x3de191a1: free_ds_type_contact_suggested (D, T); return; + case 0xc21e6e5e: free_ds_type_contact_suggested (D, T); return; + case 0x2b1a62f0: free_ds_type_dc_option (D, T); return; + case 0xd4e59d0f: free_ds_type_dc_option (D, T); return; + case 0x535b7918: free_ds_type_decrypted_message (D, T); return; + case 0xaca486e7: free_ds_type_decrypted_message (D, T); return; + case 0x4e0eefde: free_ds_type_decrypted_message_action (D, T); return; + case 0xb1f11021: free_ds_type_decrypted_message_action (D, T); return; + case 0x1be31789: free_ds_type_decrypted_message_layer (D, T); return; + case 0xe41ce876: free_ds_type_decrypted_message_layer (D, T); return; + case 0x34e0d674: free_ds_type_decrypted_message_media (D, T); return; + case 0xcb1f298b: free_ds_type_decrypted_message_media (D, T); return; + case 0xc1dd804a: free_ds_type_dialog (D, T); return; + case 0x3e227fb5: free_ds_type_dialog (D, T); return; + case 0xae636f24: free_ds_type_disabled_feature (D, T); return; + case 0x519c90db: free_ds_type_disabled_feature (D, T); return; + case 0x51a73418: free_ds_type_document (D, T); return; + case 0xae58cbe7: free_ds_type_document (D, T); return; + case 0x97c637a3: free_ds_type_document_attribute (D, T); return; + case 0x6839c85c: free_ds_type_document_attribute (D, T); return; + case 0x2210c154: free_ds_type_double (D, T); return; + case 0xddef3eab: free_ds_type_double (D, T); return; + case 0xb1718213: free_ds_type_encrypted_chat (D, T); return; + case 0x4e8e7dec: free_ds_type_encrypted_chat (D, T); return; + case 0x886fd032: free_ds_type_encrypted_file (D, T); return; + case 0x77902fcd: free_ds_type_encrypted_file (D, T); return; + case 0xce6b8a1e: free_ds_type_encrypted_message (D, T); return; + case 0x319475e1: free_ds_type_encrypted_message (D, T); return; + case 0xc4b9f9bb: free_ds_type_error (D, T); return; + case 0x3b460644: free_ds_type_error (D, T); return; + case 0x95f132d5: free_ds_type_exported_chat_invite (D, T); return; + case 0x6a0ecd2a: free_ds_type_exported_chat_invite (D, T); return; + case 0x2f8ffb30: free_ds_type_file_location (D, T); return; + case 0xd07004cf: free_ds_type_file_location (D, T); return; + case 0xf67b4034: free_ds_type_geo_chat_message (D, T); return; + case 0x0984bfcb: free_ds_type_geo_chat_message (D, T); return; + case 0x315e0a53: free_ds_type_geo_point (D, T); return; + case 0xcea1f5ac: free_ds_type_geo_point (D, T); return; + case 0xd0028438: free_ds_type_imported_contact (D, T); return; + case 0x2ffd7bc7: free_ds_type_imported_contact (D, T); return; + case 0x770656a8: free_ds_type_input_app_event (D, T); return; + case 0x88f9a957: free_ds_type_input_app_event (D, T); return; + case 0xae8e9c7b: free_ds_type_input_audio (D, T); return; + case 0x51716384: free_ds_type_input_audio (D, T); return; + case 0x3a60776d: free_ds_type_input_chat_photo (D, T); return; + case 0xc59f8892: free_ds_type_input_chat_photo (D, T); return; + case 0xf392b7f4: free_ds_type_input_contact (D, T); return; + case 0x0c6d480b: free_ds_type_input_contact (D, T); return; + case 0x6a8963fc: free_ds_type_input_document (D, T); return; + case 0x95769c03: free_ds_type_input_document (D, T); return; + case 0xf141b5e1: free_ds_type_input_encrypted_chat (D, T); return; + case 0x0ebe4a1e: free_ds_type_input_encrypted_chat (D, T); return; + case 0x0b5c064f: free_ds_type_input_encrypted_file (D, T); return; + case 0xf4a3f9b0: free_ds_type_input_encrypted_file (D, T); return; + case 0x0f60f9ca: free_ds_type_input_file (D, T); return; + case 0xf09f0635: free_ds_type_input_file (D, T); return; + case 0xe6daa38b: free_ds_type_input_file_location (D, T); return; + case 0x19255c74: free_ds_type_input_file_location (D, T); return; + case 0x74d456fa: free_ds_type_input_geo_chat (D, T); return; + case 0x8b2ba905: free_ds_type_input_geo_chat (D, T); return; + case 0x17768f1f: free_ds_type_input_geo_point (D, T); return; + case 0xe88970e0: free_ds_type_input_geo_point (D, T); return; + case 0xb32c91dd: free_ds_type_input_media (D, T); return; + case 0x4cd36e22: free_ds_type_input_media (D, T); return; + case 0x02b6911b: free_ds_type_input_notify_peer (D, T); return; + case 0xfd496ee4: free_ds_type_input_notify_peer (D, T); return; + case 0x9e67268d: free_ds_type_input_peer (D, T); return; + case 0x6198d972: free_ds_type_input_peer (D, T); return; + case 0x185a48ac: free_ds_type_input_peer_notify_events (D, T); return; + case 0xe7a5b753: free_ds_type_input_peer_notify_events (D, T); return; + case 0x46a2ce98: free_ds_type_input_peer_notify_settings (D, T); return; + case 0xb95d3167: free_ds_type_input_peer_notify_settings (D, T); return; + case 0xe74279c9: free_ds_type_input_photo (D, T); return; + case 0x18bd8636: free_ds_type_input_photo (D, T); return; + case 0x7477e321: free_ds_type_input_photo_crop (D, T); return; + case 0x8b881cde: free_ds_type_input_photo_crop (D, T); return; + case 0x4f96cb18: free_ds_type_input_privacy_key (D, T); return; + case 0xb06934e7: free_ds_type_input_privacy_key (D, T); return; + case 0x4b815163: free_ds_type_input_privacy_rule (D, T); return; + case 0xb47eae9c: free_ds_type_input_privacy_rule (D, T); return; + case 0xe44d415c: free_ds_type_input_sticker_set (D, T); return; + case 0x1bb2bea3: free_ds_type_input_sticker_set (D, T); return; + case 0xadfe0c6a: free_ds_type_input_user (D, T); return; + case 0x5201f395: free_ds_type_input_user (D, T); return; + case 0xbb5f7a27: free_ds_type_input_video (D, T); return; + case 0x44a085d8: free_ds_type_input_video (D, T); return; + case 0xa8509bda: free_ds_type_int (D, T); return; + case 0x57af6425: free_ds_type_int (D, T); return; + case 0x7d36c439: free_ds_type_int128 (D, T); return; + case 0x82c93bc6: free_ds_type_int128 (D, T); return; + case 0xf2c798b3: free_ds_type_int256 (D, T); return; + case 0x0d38674c: free_ds_type_int256 (D, T); return; + case 0xa2fa4880: free_ds_type_keyboard_button (D, T); return; + case 0x5d05b77f: free_ds_type_keyboard_button (D, T); return; + case 0x77608b83: free_ds_type_keyboard_button_row (D, T); return; + case 0x889f747c: free_ds_type_keyboard_button_row (D, T); return; + case 0x22076cba: free_ds_type_long (D, T); return; + case 0xddf89345: free_ds_type_long (D, T); return; + case 0x5d652a7f: free_ds_type_message (D, T); return; + case 0xa29ad580: free_ds_type_message (D, T); return; + case 0x383415fa: free_ds_type_message_action (D, T); return; + case 0xc7cbea05: free_ds_type_message_action (D, T); return; + case 0x95f2471a: free_ds_type_message_media (D, T); return; + case 0x6a0db8e5: free_ds_type_message_media (D, T); return; + case 0x80895ae0: free_ds_type_messages_filter (D, T); return; + case 0x7f76a51f: free_ds_type_messages_filter (D, T); return; + case 0x8e1a1775: free_ds_type_nearest_dc (D, T); return; + case 0x71e5e88a: free_ds_type_nearest_dc (D, T); return; + case 0x9fcb8237: free_ds_type_notify_peer (D, T); return; + case 0x60347dc8: free_ds_type_notify_peer (D, T); return; + case 0x56730bcc: free_ds_type_null (D, T); return; + case 0xa98cf433: free_ds_type_null (D, T); return; + case 0xbfa3de38: free_ds_type_p_q_inner_data (D, T); return; + case 0x405c21c7: free_ds_type_p_q_inner_data (D, T); return; + case 0x276159d6: free_ds_type_peer (D, T); return; + case 0xd89ea629: free_ds_type_peer (D, T); return; + case 0xc0c8d13b: free_ds_type_peer_notify_events (D, T); return; + case 0x3f372ec4: free_ds_type_peer_notify_events (D, T); return; + case 0xfdf894fc: free_ds_type_peer_notify_settings (D, T); return; + case 0x02076b03: free_ds_type_peer_notify_settings (D, T); return; + case 0xc207550a: free_ds_type_photo (D, T); return; + case 0x3df8aaf5: free_ds_type_photo (D, T); return; + case 0x900f60dd: free_ds_type_photo_size (D, T); return; + case 0x6ff09f22: free_ds_type_photo_size (D, T); return; + case 0xbc2eab30: free_ds_type_privacy_key (D, T); return; + case 0x43d154cf: free_ds_type_privacy_key (D, T); return; + case 0xa8638aec: free_ds_type_privacy_rule (D, T); return; + case 0x579c7513: free_ds_type_privacy_rule (D, T); return; + case 0xa384b779: free_ds_type_received_notify_message (D, T); return; + case 0x5c7b4886: free_ds_type_received_notify_message (D, T); return; + case 0x612ca4a9: free_ds_type_reply_markup (D, T); return; + case 0x9ed35b56: free_ds_type_reply_markup (D, T); return; + case 0x05162463: free_ds_type_res_p_q (D, T); return; + case 0xfae9db9c: free_ds_type_res_p_q (D, T); return; + case 0x70541c7e: free_ds_type_send_message_action (D, T); return; + case 0x8fabe381: free_ds_type_send_message_action (D, T); return; + case 0xa9230301: free_ds_type_server_d_h_params (D, T); return; + case 0x56dcfcfe: free_ds_type_server_d_h_params (D, T); return; + case 0xb5890dba: free_ds_type_server_d_h_inner_data (D, T); return; + case 0x4a76f245: free_ds_type_server_d_h_inner_data (D, T); return; + case 0xdb8a468f: free_ds_type_set_client_d_h_params_answer (D, T); return; + case 0x2475b970: free_ds_type_set_client_d_h_params_answer (D, T); return; + case 0x12b299d4: free_ds_type_sticker_pack (D, T); return; + case 0xed4d662b: free_ds_type_sticker_pack (D, T); return; + case 0xa7a43b17: free_ds_type_sticker_set (D, T); return; + case 0x585bc4e8: free_ds_type_sticker_set (D, T); return; + case 0xb5286e24: free_ds_type_string (D, T); return; + case 0x4ad791db: free_ds_type_string (D, T); return; + case 0x2e02b27e: free_ds_type_update (D, T); return; + case 0xd1fd4d81: free_ds_type_update (D, T); return; + case 0x22499d27: free_ds_type_updates (D, T); return; + case 0xddb662d8: free_ds_type_updates (D, T); return; + case 0x02e6c0c8: free_ds_type_user (D, T); return; + case 0xfd193f37: free_ds_type_user (D, T); return; + case 0x5a89ac5b: free_ds_type_user_full (D, T); return; + case 0xa57653a4: free_ds_type_user_full (D, T); return; + case 0x9a486229: free_ds_type_user_profile_photo (D, T); return; + case 0x65b79dd6: free_ds_type_user_profile_photo (D, T); return; + case 0x76de9570: free_ds_type_user_status (D, T); return; + case 0x89216a8f: free_ds_type_user_status (D, T); return; + case 0x1cb5c415: free_ds_type_vector (D, T); return; + case 0xe34a3bea: free_ds_type_vector (D, T); return; + case 0x1716b174: free_ds_type_video (D, T); return; + case 0xe8e94e8b: free_ds_type_video (D, T); return; + case 0xafa14973: free_ds_type_wall_paper (D, T); return; + case 0x505eb68c: free_ds_type_wall_paper (D, T); return; + case 0x8d8c0d41: free_ds_type_web_page (D, T); return; + case 0x7273f2be: free_ds_type_web_page (D, T); return; + case 0x1250abde: free_ds_type_account_authorizations (D, T); return; + case 0xedaf5421: free_ds_type_account_authorizations (D, T); return; + case 0xeac2a804: free_ds_type_account_password (D, T); return; + case 0x153d57fb: free_ds_type_account_password (D, T); return; + case 0xbcfc532c: free_ds_type_account_password_input_settings (D, T); return; + case 0x4303acd3: free_ds_type_account_password_input_settings (D, T); return; + case 0xb7b72ab3: free_ds_type_account_password_settings (D, T); return; + case 0x4848d54c: free_ds_type_account_password_settings (D, T); return; + case 0x554abb6f: free_ds_type_account_privacy_rules (D, T); return; + case 0xaab54490: free_ds_type_account_privacy_rules (D, T); return; + case 0xa4f58c4c: free_ds_type_account_sent_change_phone_code (D, T); return; + case 0x5b0a73b3: free_ds_type_account_sent_change_phone_code (D, T); return; + case 0xff036af1: free_ds_type_auth_authorization (D, T); return; + case 0x00fc950e: free_ds_type_auth_authorization (D, T); return; + case 0x811ea28e: free_ds_type_auth_checked_phone (D, T); return; + case 0x7ee15d71: free_ds_type_auth_checked_phone (D, T); return; + case 0xdf969c2d: free_ds_type_auth_exported_authorization (D, T); return; + case 0x206963d2: free_ds_type_auth_exported_authorization (D, T); return; + case 0x137948a5: free_ds_type_auth_password_recovery (D, T); return; + case 0xec86b75a: free_ds_type_auth_password_recovery (D, T); return; + case 0x0cc8bc16: free_ds_type_auth_sent_code (D, T); return; + case 0xf33743e9: free_ds_type_auth_sent_code (D, T); return; + case 0x0377168f: free_ds_type_binlog_encr_key (D, T); return; + case 0xfc88e970: free_ds_type_binlog_encr_key (D, T); return; + case 0x66ff03a6: free_ds_type_binlog_update (D, T); return; + case 0x9900fc59: free_ds_type_binlog_update (D, T); return; + case 0x8c1b8fb4: free_ds_type_contacts_blocked (D, T); return; + case 0x73e4704b: free_ds_type_contacts_blocked (D, T); return; + case 0xd8c02560: free_ds_type_contacts_contacts (D, T); return; + case 0x273fda9f: free_ds_type_contacts_contacts (D, T); return; + case 0x0566000e: free_ds_type_contacts_found (D, T); return; + case 0xfa99fff1: free_ds_type_contacts_found (D, T); return; + case 0xad524315: free_ds_type_contacts_imported_contacts (D, T); return; + case 0x52adbcea: free_ds_type_contacts_imported_contacts (D, T); return; + case 0x3ace484c: free_ds_type_contacts_link (D, T); return; + case 0xc531b7b3: free_ds_type_contacts_link (D, T); return; + case 0x5649dcc5: free_ds_type_contacts_suggested (D, T); return; + case 0xa9b6233a: free_ds_type_contacts_suggested (D, T); return; + case 0x48feb267: free_ds_type_geochats_located (D, T); return; + case 0xb7014d98: free_ds_type_geochats_located (D, T); return; + case 0x6d0a0e59: free_ds_type_geochats_messages (D, T); return; + case 0x92f5f1a6: free_ds_type_geochats_messages (D, T); return; + case 0x17b1578b: free_ds_type_geochats_stated_message (D, T); return; + case 0xe84ea874: free_ds_type_geochats_stated_message (D, T); return; + case 0x4ddd9627: free_ds_type_help_app_update (D, T); return; + case 0xb22269d8: free_ds_type_help_app_update (D, T); return; + case 0x18cb9f78: free_ds_type_help_invite_text (D, T); return; + case 0xe7346087: free_ds_type_help_invite_text (D, T); return; + case 0x17c6b5f6: free_ds_type_help_support (D, T); return; + case 0xe8394a09: free_ds_type_help_support (D, T); return; + case 0xb45c69d1: free_ds_type_messages_affected_history (D, T); return; + case 0x4ba3962e: free_ds_type_messages_affected_history (D, T); return; + case 0x84d19185: free_ds_type_messages_affected_messages (D, T); return; + case 0x7b2e6e7a: free_ds_type_messages_affected_messages (D, T); return; + case 0xb485502f: free_ds_type_messages_all_stickers (D, T); return; + case 0x4b7aafd0: free_ds_type_messages_all_stickers (D, T); return; + case 0xe5d7d19c: free_ds_type_messages_chat_full (D, T); return; + case 0x1a282e63: free_ds_type_messages_chat_full (D, T); return; + case 0x64ff9fd5: free_ds_type_messages_chats (D, T); return; + case 0x9b00602a: free_ds_type_messages_chats (D, T); return; + case 0xecc058e8: free_ds_type_messages_dh_config (D, T); return; + case 0x133fa717: free_ds_type_messages_dh_config (D, T); return; + case 0x645af8b3: free_ds_type_messages_dialogs (D, T); return; + case 0x9ba5074c: free_ds_type_messages_dialogs (D, T); return; + case 0x3f4e0648: free_ds_type_messages_message (D, T); return; + case 0xc0b1f9b7: free_ds_type_messages_message (D, T); return; + case 0x8735e464: free_ds_type_messages_messages (D, T); return; + case 0x78ca1b9b: free_ds_type_messages_messages (D, T); return; + case 0xc29c7607: free_ds_type_messages_sent_encrypted_message (D, T); return; + case 0x3d6389f8: free_ds_type_messages_sent_encrypted_message (D, T); return; + case 0x799ce190: free_ds_type_messages_sent_message (D, T); return; + case 0x86631e6f: free_ds_type_messages_sent_message (D, T); return; + case 0xb60a24a6: free_ds_type_messages_sticker_set (D, T); return; + case 0x49f5db59: free_ds_type_messages_sticker_set (D, T); return; + case 0x7bfa5710: free_ds_type_messages_stickers (D, T); return; + case 0x8405a8ef: free_ds_type_messages_stickers (D, T); return; + case 0x20212ca8: free_ds_type_photos_photo (D, T); return; + case 0xdfded357: free_ds_type_photos_photo (D, T); return; + case 0x98cf75f1: free_ds_type_photos_photos (D, T); return; + case 0x67308a0e: free_ds_type_photos_photos (D, T); return; + case 0x3e2838a8: free_ds_type_storage_file_type (D, T); return; + case 0xc1d7c757: free_ds_type_storage_file_type (D, T); return; + case 0xf57a2419: free_ds_type_updates_difference (D, T); return; + case 0x0a85dbe6: free_ds_type_updates_difference (D, T); return; + case 0xa56c2a3e: free_ds_type_updates_state (D, T); return; + case 0x5a93d5c1: free_ds_type_updates_state (D, T); return; + case 0x096a18d5: free_ds_type_upload_file (D, T); return; + case 0xf695e72a: free_ds_type_upload_file (D, T); return; + default: return; } +} diff --git a/libs/tgl/src/auto/auto-free-ds.h b/libs/tgl/src/auto/auto-free-ds.h new file mode 100644 index 0000000000..7785aa0141 --- /dev/null +++ b/libs/tgl/src/auto/auto-free-ds.h @@ -0,0 +1,569 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-types.h" +#else +#include "auto.h" +#include "auto/auto-types.h" +#endif +#include +#include +struct tgl_state; +void free_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T); +void free_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T); +void free_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T); +void free_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T); +void free_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T); +void free_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T); +void free_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T); +void free_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T); +void free_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T); +void free_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T); +void free_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T); +void free_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T); +void free_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T); +void free_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T); +void free_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T); +void free_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T); +void free_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T); +void free_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T); +void free_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T); +void free_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T); +void free_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T); +void free_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T); +void free_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T); +void free_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T); +void free_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T); +void free_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T); +void free_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T); +void free_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T); +void free_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T); +void free_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T); +void free_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T); +void free_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T); +void free_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T); +void free_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T); +void free_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T); +void free_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T); +void free_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T); +void free_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T); +void free_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T); +void free_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T); +void free_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_constructor_double (double *D, struct paramed_type *T); +void free_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void free_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void free_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T); +void free_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void free_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void free_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T); +void free_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T); +void free_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void free_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void free_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void free_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T); +void free_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T); +void free_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T); +void free_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T); +void free_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T); +void free_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T); +void free_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void free_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void free_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void free_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T); +void free_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T); +void free_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void free_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T); +void free_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T); +void free_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T); +void free_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void free_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void free_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void free_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void free_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T); +void free_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T); +void free_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T); +void free_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void free_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void free_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void free_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void free_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T); +void free_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T); +void free_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T); +void free_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T); +void free_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T); +void free_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T); +void free_ds_constructor_int (int *D, struct paramed_type *T); +void free_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T); +void free_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T); +void free_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T); +void free_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T); +void free_ds_constructor_long (long long *D, struct paramed_type *T); +void free_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T); +void free_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T); +void free_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T); +void free_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T); +void free_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T); +void free_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T); +void free_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void free_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void free_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T); +void free_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T); +void free_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void free_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void free_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void free_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void free_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T); +void free_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T); +void free_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T); +void free_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T); +void free_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void free_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void free_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T); +void free_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T); +void free_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T); +void free_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T); +void free_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T); +void free_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void free_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void free_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T); +void free_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void free_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void free_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void free_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T); +void free_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T); +void free_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T); +void free_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T); +void free_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T); +void free_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T); +void free_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void free_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void free_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T); +void free_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T); +void free_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T); +void free_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T); +void free_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T); +void free_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T); +void free_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T); +void free_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T); +void free_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T); +void free_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T); +void free_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T); +void free_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T); +void free_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T); +void free_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T); +void free_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T); +void free_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T); +void free_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T); +void free_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T); +void free_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T); +void free_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T); +void free_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void free_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void free_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T); +void free_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void free_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void free_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void free_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void free_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T); +void free_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T); +void free_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T); +void free_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T); +void free_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T); +void free_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void free_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void free_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T); +void free_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void free_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void free_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T); +void free_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T); +void free_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T); +void free_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T); +void free_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void free_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void free_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T); +void free_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T); +void free_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void free_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void free_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void free_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void free_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T); +void free_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T); +void free_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T); +void free_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void free_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void free_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void free_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void free_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T); +void free_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void free_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void free_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T); +void free_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T); +void free_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T); +void free_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T); +void free_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T); +void free_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T); +void free_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T); +void free_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T); +void free_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T); +void free_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T); +void free_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T); +void free_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T); +void free_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T); +void free_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T); +void free_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T); +void free_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T); +void free_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T); +void free_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T); +void free_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T); +void free_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T); +void free_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T); +void free_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T); +void free_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T); +void free_ds_type_config (struct tl_ds_config *D, struct paramed_type *T); +void free_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T); +void free_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T); +void free_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T); +void free_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T); +void free_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T); +void free_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T); +void free_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T); +void free_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void free_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void free_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T); +void free_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void free_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T); +void free_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T); +void free_ds_type_document (struct tl_ds_document *D, struct paramed_type *T); +void free_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T); +void free_ds_type_double (double *D, struct paramed_type *T); +void free_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void free_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void free_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void free_ds_type_error (struct tl_ds_error *D, struct paramed_type *T); +void free_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void free_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T); +void free_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void free_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T); +void free_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T); +void free_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T); +void free_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T); +void free_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void free_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T); +void free_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T); +void free_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T); +void free_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void free_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T); +void free_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void free_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T); +void free_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void free_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T); +void free_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void free_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T); +void free_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void free_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T); +void free_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T); +void free_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void free_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T); +void free_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void free_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void free_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T); +void free_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T); +void free_ds_type_int (int *D, struct paramed_type *T); +void free_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T); +void free_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T); +void free_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T); +void free_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T); +void free_ds_type_long (long long *D, struct paramed_type *T); +void free_ds_type_message (struct tl_ds_message *D, struct paramed_type *T); +void free_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T); +void free_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T); +void free_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T); +void free_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T); +void free_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T); +void free_ds_type_null (struct tl_ds_null *D, struct paramed_type *T); +void free_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void free_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T); +void free_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void free_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void free_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T); +void free_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void free_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T); +void free_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void free_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T); +void free_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T); +void free_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T); +void free_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void free_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void free_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T); +void free_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void free_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T); +void free_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T); +void free_ds_type_string (struct tl_ds_string *D, struct paramed_type *T); +void free_ds_type_update (struct tl_ds_update *D, struct paramed_type *T); +void free_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T); +void free_ds_type_user (struct tl_ds_user *D, struct paramed_type *T); +void free_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T); +void free_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void free_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T); +void free_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T); +void free_ds_type_video (struct tl_ds_video *D, struct paramed_type *T); +void free_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T); +void free_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T); +void free_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T); +void free_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T); +void free_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T); +void free_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T); +void free_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T); +void free_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T); +void free_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T); +void free_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T); +void free_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T); +void free_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T); +void free_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void free_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T); +void free_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T); +void free_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void free_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void free_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T); +void free_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T); +void free_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T); +void free_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T); +void free_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T); +void free_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void free_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T); +void free_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void free_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T); +void free_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T); +void free_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T); +void free_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T); +void free_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void free_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T); +void free_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T); +void free_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void free_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void free_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T); +void free_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T); +void free_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void free_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void free_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T); +void free_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void free_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T); +void free_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T); +void free_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void free_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T); +void free_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T); +void free_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T); +void free_ds_type_any (void *D, struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-print-ds.c b/libs/tgl/src/auto/auto-print-ds.c new file mode 100644 index 0000000000..6ca075d912 --- /dev/null +++ b/libs/tgl/src/auto/auto-print-ds.c @@ -0,0 +1,16382 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-print-ds.h" +#include "auto-skip.h" +#include "..\auto-static-print-ds.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-print-ds.h" +#include "auto/auto-skip.h" +#include "auto-static-print-ds.c" +#include "mtproto-common.h" +#endif +#include +int print_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->days, field1); + return 0; +} +int print_ds_constructor_audio_empty (struct tl_ds_audio *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + eprintf (" audioEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_audio (struct tl_ds_audio *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + eprintf (" audio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; } + eprintf (" authorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->hash, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" device_model :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->device_model, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" platform :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->platform, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" system_version :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->system_version, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" api_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->api_id, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" app_name :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->app_name, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" app_version :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->app_version, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date_created :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date_created, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date_active :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date_active, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->ip, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" country :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->country, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" region :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->region, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bool_false (struct tl_ds_bool *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + eprintf (" boolFalse"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bool_true (struct tl_ds_bool *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + eprintf (" boolTrue"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + eprintf (" botCommand"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" command :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->command, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->description, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bot_command_old (struct tl_ds_bot_command *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + eprintf (" botCommandOld"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" command :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->command, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" params :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->params, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->description, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bot_info_empty (struct tl_ds_bot_info *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + eprintf (" botInfoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + eprintf (" botInfo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" share_text :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->share_text, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->description, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" commands :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->commands, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_bytes (struct tl_ds_string *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; } + print_escaped_string (DS->data, DS->len); + return 0; +} +int print_ds_constructor_chat_empty (struct tl_ds_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chatEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat (struct tl_ds_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_photo (DS->photo, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->participants_count, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" left :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->left, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_forbidden (struct tl_ds_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" chatForbidden"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_chat (struct tl_ds_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + eprintf (" geoChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->address, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->venue, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_point (DS->geo, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_photo (DS->photo, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants_count :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->participants_count, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" checked_in :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->checked_in, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return -1; } + eprintf (" chatFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_participants (DS->participants, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->chat_photo, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer_notify_settings (DS->notify_settings, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exported_invite :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_exported_chat_invite (DS->exported_invite, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->bot_info, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + eprintf (" chatInviteAlready"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat (DS->chat, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + eprintf (" chatInvite"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; } + eprintf (" chatLocated"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" distance :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->distance, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; } + eprintf (" chatParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->inviter_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + eprintf (" chatParticipantsForbidden"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + eprintf (" chatParticipants"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->participants, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + eprintf (" chatPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + eprintf (" chatPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_small :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->photo_small, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_big :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->photo_big, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; } + eprintf (" client_DH_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" retry_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->retry_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_b :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->g_b, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_config (struct tl_ds_config *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return -1; } + eprintf (" config"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->expires, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" test_mode :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->test_mode, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" this_dc :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->this_dc, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_options :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->dc_options, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_size_max :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_size_max, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" broadcast_size_max :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->broadcast_size_max, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" forwarded_count_max :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->forwarded_count_max, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" online_update_period_ms :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->online_update_period_ms, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offline_blur_timeout_ms :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->offline_blur_timeout_ms, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offline_idle_timeout_ms :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->offline_idle_timeout_ms, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" online_cloud_timeout_ms :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->online_cloud_timeout_ms, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_cloud_delay_ms :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->notify_cloud_delay_ms, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_default_delay_ms :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->notify_default_delay_ms, field14); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_big_size :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_big_size, field15); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" push_chat_period_ms :"); } + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->push_chat_period_ms, field16); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" push_chat_limit :"); } + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->push_chat_limit, field17); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" disabled_features :"); } + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->disabled_features, field18); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact (struct tl_ds_contact *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; } + eprintf (" contact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mutual :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->mutual, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; } + eprintf (" contactBlocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + return 0; +} +int print_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkUnknown"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_link_none (struct tl_ds_contact_link *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkNone"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkHasPhone"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_link_contact (struct tl_ds_contact_link *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + eprintf (" contactLinkContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; } + eprintf (" contactStatus"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_status (DS->status, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; } + eprintf (" contactSuggested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mutual_contacts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->mutual_contacts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + eprintf (" dcOptionL28"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hostname :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->hostname, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip_address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->ip_address, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->port, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + eprintf (" dcOption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip_address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->ip_address, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->port, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + eprintf (" decryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->random_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->ttl, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_decrypted_message_media (DS->media, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + eprintf (" decryptedMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->random_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_decrypted_message_action (DS->action, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionSetMessageTTL"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl_seconds :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->ttl_seconds, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionReadMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->random_ids, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionDeleteMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->random_ids, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionScreenshotMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_ids :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->random_ids, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionFlushHistory"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionResend"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" start_seq_no :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->start_seq_no, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" end_seq_no :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->end_seq_no, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionNotifyLayer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->layer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_send_message_action (DS->action, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionRequestKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->exchange_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->g_a, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionAcceptKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->exchange_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_b :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->g_b, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->key_fingerprint, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionAbortKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->exchange_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionCommitKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->exchange_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->key_fingerprint, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + eprintf (" decryptedMessageActionNoop"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; } + eprintf (" decryptedMessageLayer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_bytes :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->random_bytes, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->layer, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" in_seq_no :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->in_seq_no, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" out_seq_no :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->out_seq_no, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_decrypted_message (DS->message, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->str_thumb, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_w, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_h, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->latitude, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->longitude, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_number, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->str_thumb, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_w, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_h, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->file_name, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->str_thumb, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_w, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_h, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaExternalDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo_size (DS->thumb, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->attributes, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaVideoL12"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" str_thumb :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->str_thumb, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_w, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb_h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->thumb_h, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + eprintf (" decryptedMessageMediaAudioL12"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->key, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" iv :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->iv, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return -1; } + eprintf (" dialog"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" top_message :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->top_message, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" read_inbox_max_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->read_inbox_max_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" unread_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->unread_count, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer_notify_settings (DS->notify_settings, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; } + eprintf (" disabledFeature"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" feature :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->feature, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->description, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_empty (struct tl_ds_document *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" documentEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document (struct tl_ds_document *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" document"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo_size (DS->thumb, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->attributes, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_l19 (struct tl_ds_document *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + eprintf (" document_l19"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->file_name, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo_size (DS->thumb, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeImageSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeAnimated"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeStickerL28"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" alt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->alt, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeSticker"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" alt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->alt, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" stickerset :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_sticker_set (DS->stickerset, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + eprintf (" documentAttributeFilename"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file_name :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->file_name, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_double (double *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; } + eprintf (" %lf", *DS); + return 0; +} +int print_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatWaiting"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->participant_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatRequested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->participant_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->g_a, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participant_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->participant_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a_or_b :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->g_a_or_b, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->key_fingerprint, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + eprintf (" encryptedChatDiscarded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + eprintf (" encryptedFileEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + eprintf (" encryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->key_fingerprint, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + eprintf (" encryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->random_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->bytes, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_encrypted_file (DS->file, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + eprintf (" encryptedMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->random_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->bytes, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_error (struct tl_ds_error *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; } + eprintf (" error"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" code :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->code, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" text :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->text, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + eprintf (" chatInviteEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + eprintf (" chatInviteExported"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" link :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->link, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_file_location_unavailable (struct tl_ds_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + eprintf (" fileLocationUnavailable"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->volume_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->local_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->secret, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_file_location (struct tl_ds_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + eprintf (" fileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->volume_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->local_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->secret, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + eprintf (" geoChatMessageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_action (DS->action, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_point_empty (struct tl_ds_geo_point *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + eprintf (" geoPointEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + eprintf (" geoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->longitude, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->latitude, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; } + eprintf (" importedContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" client_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->client_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; } + eprintf (" inputAppEvent"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" time :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->time, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->peer, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" data :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->data, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_audio_empty (struct tl_ds_input_audio *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + eprintf (" inputAudioEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + eprintf (" inputAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatUploadedPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_photo_crop (DS->crop, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + eprintf (" inputChatPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_photo (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_photo_crop (DS->crop, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_phone_contact (struct tl_ds_input_contact *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; } + eprintf (" inputPhoneContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" client_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->client_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_document_empty (struct tl_ds_input_document *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + eprintf (" inputDocumentEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_document (struct tl_ds_input_document *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + eprintf (" inputDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; } + eprintf (" inputEncryptedChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileUploaded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->parts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" md5_checksum :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->md5_checksum, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->key_fingerprint, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + eprintf (" inputEncryptedFileBigUploaded"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->parts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->key_fingerprint, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_file (struct tl_ds_input_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + eprintf (" inputFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->parts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" md5_checksum :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->md5_checksum, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_file_big (struct tl_ds_input_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + eprintf (" inputFileBig"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" parts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->parts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" volume_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->volume_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" local_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->local_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" secret :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->secret, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputVideoFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputEncryptedFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputAudioFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + eprintf (" inputDocumentFileLocation"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; } + eprintf (" inputGeoChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + eprintf (" inputGeoPointEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + eprintf (" inputGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" latitude :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->latitude, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" longitude :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->longitude, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_empty (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_photo (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_photo (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_geo_point (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaGeoPoint"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_point :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_geo_point (DS->geo_point, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_contact (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_number, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedThumbVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->thumb, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_video (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_video (DS->video_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_audio (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" audio_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_audio (DS->audio_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->attributes, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaUploadedThumbDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->file, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_file (DS->thumb, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" attributes :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->attributes, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_document (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" document_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_document (DS->document_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_media_venue (struct tl_ds_input_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + eprintf (" inputMediaVenue"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_point :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_geo_point (DS->geo_point, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->address, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" provider :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->provider, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->venue_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_peer (DS->peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyChats"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + eprintf (" inputNotifyGeoChatPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_input_geo_chat (DS->geo_peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_empty (struct tl_ds_input_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_self (struct tl_ds_input_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerSelf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_contact (struct tl_ds_input_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerForeign"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_chat (struct tl_ds_input_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + eprintf (" inputPeerChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + eprintf (" inputPeerNotifyEventsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + eprintf (" inputPeerNotifyEventsAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; } + eprintf (" inputPeerNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mute_until :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->mute_until, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sound :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->sound, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" show_previews :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->show_previews, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" events_mask :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->events_mask, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_photo_empty (struct tl_ds_input_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + eprintf (" inputPhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + eprintf (" inputPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + eprintf (" inputPhotoCropAuto"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + eprintf (" inputPhotoCrop"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_left :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->crop_left, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_top :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->crop_top, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" crop_width :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_double (DS->crop_width, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; } + eprintf (" inputPrivacyKeyStatusTimestamp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueAllowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + eprintf (" inputPrivacyValueDisallowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetID"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + eprintf (" inputStickerSetShortName"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" short_name :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->short_name, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_user_empty (struct tl_ds_input_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_user_self (struct tl_ds_input_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserSelf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_user_contact (struct tl_ds_input_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_user_foreign (struct tl_ds_input_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + eprintf (" inputUserForeign"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_video_empty (struct tl_ds_input_video *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + eprintf (" inputVideoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_video (struct tl_ds_input_video *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + eprintf (" inputVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_int (int *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; } + eprintf (" %d", *DS); + return 0; +} +int print_ds_constructor_int128 (struct tl_ds_int128 *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; } + eprintf (" int128"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f0, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f1, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_int256 (struct tl_ds_int256 *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; } + eprintf (" int256"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f0, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f1, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f2, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->f3, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->text, field1); + return 0; +} +int print_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->buttons, field1); + return 0; +} +int print_ds_constructor_long (long long *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; } + eprintf (" %I64d", *DS); + return 0; +} +int print_ds_constructor_message_empty (struct tl_ds_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" messageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message (struct tl_ds_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" message"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->to_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_from_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_date, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->reply_to_msg_id, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_markup :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_reply_markup (DS->reply_markup, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_message_service (struct tl_ds_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + eprintf (" messageService"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->to_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_action (DS->action, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_empty (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatCreate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatEditTitle"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatEditPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatDeletePhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatAddUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatDeleteUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionGeoChatCreate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->address, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionGeoChatCheckin"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + eprintf (" messageActionChatJoinedByLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->inviter_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_empty (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_photo (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_video (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_video (DS->video, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_geo (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaGeo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_point (DS->geo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_contact (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaContact"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_number, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_unsupported (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaUnsupported"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_document (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" document :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_document (DS->document, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_audio (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" audio :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_audio (DS->audio, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_web_page (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaWebPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" webpage :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_web_page (DS->webpage, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_venue (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVenue"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_point (DS->geo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" address :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->address, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" provider :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->provider, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" venue_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->venue_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaPhotoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + eprintf (" messageMediaVideoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" video :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_video (DS->video, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotos"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotoVideo"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterPhotoVideoDocuments"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterDocument"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + eprintf (" inputMessagesFilterAudio"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; } + eprintf (" nearestDc"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" country :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->country, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" this_dc :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->this_dc, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nearest_dc :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->nearest_dc, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyPeer"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_notify_users (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_notify_chats (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyChats"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_notify_all (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + eprintf (" notifyAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_null (struct tl_ds_null *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; } + eprintf (" null"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + eprintf (" p_q_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->pq, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->p, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" q :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->q, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int256 (DS->new_nonce, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + eprintf (" p_q_inner_data_temp"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->pq, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->p, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" q :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->q, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int256 (DS->new_nonce, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires_in :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->expires_in, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_user (struct tl_ds_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + eprintf (" peerUser"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_chat (struct tl_ds_peer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + eprintf (" peerChat"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + eprintf (" peerNotifyEventsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + eprintf (" peerNotifyEventsAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + eprintf (" peerNotifySettingsEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + eprintf (" peerNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mute_until :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->mute_until, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sound :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->sound, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" show_previews :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->show_previews, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" events_mask :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->events_mask, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo_empty (struct tl_ds_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo (struct tl_ds_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_point (DS->geo, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->sizes, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo_l27 (struct tl_ds_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + eprintf (" photoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_point (DS->geo, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->sizes, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo_size_empty (struct tl_ds_photo_size *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoSizeEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->location, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photo_cached_size (struct tl_ds_photo_size *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + eprintf (" photoCachedSize"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->location, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->bytes, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; } + eprintf (" privacyKeyStatusTimestamp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueAllowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowAll"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + eprintf (" privacyValueDisallowUsers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; } + eprintf (" receivedNotifyMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardHide"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardForceReply"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + eprintf (" replyKeyboardMarkup"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rows :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->rows, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; } + eprintf (" resPQ"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pq :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->pq, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_public_key_fingerprints :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->server_public_key_fingerprints, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageTypingAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageCancelAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageRecordVideoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadVideoActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadVideoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->progress, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageRecordAudioAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadAudioActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadAudioAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->progress, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadPhotoAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->progress, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadDocumentActionL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageUploadDocumentAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" progress :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->progress, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageGeoLocationAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + eprintf (" sendMessageChooseContactAction"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + eprintf (" server_DH_params_fail"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->new_nonce_hash, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + eprintf (" server_DH_params_ok"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encrypted_answer :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->encrypted_answer, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; } + eprintf (" server_DH_inner_data"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->g, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dh_prime :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->dh_prime, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_a :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->g_a, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_time :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->server_time, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_ok"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash1 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->new_nonce_hash1, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_retry"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash2 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->new_nonce_hash2, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + eprintf (" dh_gen_fail"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" nonce :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->nonce, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" server_nonce :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->server_nonce, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_nonce_hash3 :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int128 (DS->new_nonce_hash3, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; } + eprintf (" stickerPack"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" emoticon :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->emoticon, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->documents, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; } + eprintf (" stickerSet"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" short_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->short_name, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_string (struct tl_ds_string *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; } + print_escaped_string (DS->data, DS->len); + return 0; +} +int print_ds_constructor_update_new_message (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message (DS->message, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_message_i_d (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateMessageID"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->random_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_delete_messages (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateDeleteMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_typing (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_send_message_action (DS->action, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_chat_user_typing (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatUserTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_send_message_action (DS->action, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_chat_participants (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipants"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_participants (DS->participants, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_status (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserStatus"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_status (DS->status, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_name (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserName"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->username, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_photo (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserPhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_profile_photo (DS->photo, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" previous :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->previous, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_contact_registered (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateContactRegistered"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_contact_link (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateContactLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" my_link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_contact_link (DS->my_link, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" foreign_link :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_contact_link (DS->foreign_link, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_new_authorization (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" auth_key_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->auth_key_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" device :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->device, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" location :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->location, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewGeoChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" geo_message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_chat_message (DS->geo_message, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_new_encrypted_message (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNewEncryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_encrypted_message (DS->encr_message, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->qts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryptedChatTyping"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_encryption (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_encrypted_chat (DS->encr_chat, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateEncryptedMessagesRead"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->max_date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_chat_participant_add (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipantAdd"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->inviter_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_chat_participant_delete (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateChatParticipantDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_dc_options (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateDcOptions"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_options :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->dc_options, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_blocked (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserBlocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->blocked, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_notify_settings (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateNotifySettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_notify_peer (DS->notify_peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer_notify_settings (DS->notify_settings, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_service_notification (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateServiceNotification"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message_text :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message_text, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" popup :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->popup, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_privacy (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updatePrivacy"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_privacy_key (DS->key, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rules :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->rules, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_user_phone (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateUserPhone"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_read_history_inbox (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadHistoryInbox"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->max_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_read_history_outbox (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadHistoryOutbox"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" peer :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer (DS->peer, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" max_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->max_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_web_page (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateWebPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" webpage :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_web_page (DS->webpage, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_read_messages_contents (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateReadMessagesContents"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_msg_update (struct tl_ds_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + eprintf (" updateMsgUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_too_long (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updatesTooLong"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_update_short_message (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShortMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_from_id, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_date, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->reply_to_msg_id, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_update_short_chat_message (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShortChatMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->chat_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_from_id, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_date, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_to_msg_id :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->reply_to_msg_id, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_update_short (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updateShort"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" update :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_update (DS->update, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_combined (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updatesCombined"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" updates :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->updates, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq_start :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq_start, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates (struct tl_ds_updates *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + eprintf (" updates"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" updates :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->updates, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_empty (struct tl_ds_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + eprintf (" userEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user (struct tl_ds_user *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + eprintf (" user"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->username, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 4)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_profile_photo (DS->photo, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" status :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_status (DS->status, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 14)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info_version :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->bot_info_version, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; } + eprintf (" userFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user (DS->user, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_contacts_link (DS->link, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" profile_photo :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->profile_photo, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" notify_settings :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_peer_notify_settings (DS->notify_settings, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->blocked, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bot_info (DS->bot_info, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + eprintf (" userProfilePhotoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + eprintf (" userProfilePhoto"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->photo_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_small :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->photo_small, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo_big :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_file_location (DS->photo_big, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_empty (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_online (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusOnline"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" expires :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->expires, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_offline (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusOffline"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" was_online :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->was_online, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_recently (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusRecently"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_last_week (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusLastWeek"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_user_status_last_month (struct tl_ds_user_status *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + eprintf (" userStatusLastMonth"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_vector (struct tl_ds_vector *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; } + if (ODDP(T->params[0])) { return -1; } + struct paramed_type *var0 = T->params[0]; assert (var0); + eprintf (" vector"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + struct paramed_type *var1 = INT2PTR (*DS->f1); + eprintf (" %d", (int)PTR2INT (var1)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + eprintf (" ["); + if (multiline_output >= 1) { eprintf ("\n"); } + if (multiline_output >= 1) { multiline_offset += multiline_offset_size;} + { + int i = 0; + while (i < multiplicity3) { + if (multiline_output >= 1) { print_offset (); } + print_ds_type_any (DS->f2[i ++], field3); + if (multiline_output >= 1) { eprintf ("\n"); } + } + } + if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();} + eprintf (" ]"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_video_empty (struct tl_ds_video *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" videoEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_video (struct tl_ds_video *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" video"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo_size (DS->thumb, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_video_l27 (struct tl_ds_video *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + eprintf (" videoL27"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" caption :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->caption, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mime_type :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->mime_type, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" size :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->size, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" thumb :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo_size (DS->thumb, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc_id :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc_id, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" w :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->w, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" h :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->h, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + eprintf (" wallPaper"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sizes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->sizes, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" color :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->color, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + eprintf (" wallPaperSolid"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bg_color :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->bg_color, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" color :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->color, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_web_page_empty (struct tl_ds_web_page *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_web_page_pending (struct tl_ds_web_page *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPagePending"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + eprintf (" webPage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" url :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->url, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" display_url :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->display_url, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->type, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" site_name :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->site_name, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 2)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 3)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" description :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->description, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 4)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_url :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->embed_url, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 5)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_type :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->embed_type, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_width :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->embed_width, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 6)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" embed_height :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->embed_height, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 7)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" duration :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->duration, field14); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 8)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" author :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->author, field15); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->authorizations, field1); + return 0; +} +int print_ds_constructor_account_no_password (struct tl_ds_account_password *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + eprintf (" account.noPassword"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->new_salt, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->email_unconfirmed_pattern, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + eprintf (" account.password"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" current_salt :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->current_salt, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->new_salt, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hint :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->hint, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" has_recovery :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->has_recovery, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email_unconfirmed_pattern :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->email_unconfirmed_pattern, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; } + eprintf (" account.passwordInputSettings"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_salt :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->new_salt, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_password_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->new_password_hash, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 0)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hint :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->hint, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 1)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" email :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->email, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->email, field1); + return 0; +} +int print_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; } + eprintf (" account.privacyRules"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" rules :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->rules, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; } + eprintf (" account.sentChangePhoneCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_code_hash, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->send_call_timeout, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user (DS->user, field1); + return 0; +} +int print_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->phone_registered, field1); + return 0; +} +int print_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; } + eprintf (" auth.exportedAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->bytes, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->email_pattern, field1); + return 0; +} +int print_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + eprintf (" auth.sentCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_registered :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->phone_registered, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_code_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->send_call_timeout, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" is_password :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->is_password, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + eprintf (" auth.sentAppCode"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_registered :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->phone_registered, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_code_hash :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_code_hash, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" send_call_timeout :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->send_call_timeout, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" is_password :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->is_password, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; } + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + eprintf (" ["); + if (multiline_output >= 1) { eprintf ("\n"); } + if (multiline_output >= 1) { multiline_offset += multiline_offset_size;} + { + int i = 0; + while (i < multiplicity1) { + if (multiline_output >= 1) { print_offset (); } + print_ds_type_any (DS->key[i ++], field1); + if (multiline_output >= 1) { eprintf ("\n"); } + } + } + if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();} + eprintf (" ]"); + return 0; +} +int print_ds_constructor_binlog_start (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.start"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcOption"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->name, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->ip, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->port, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcOptionNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->flags, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" name :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->name, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ip :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->ip, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" port :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->port, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.authKey"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_binlog_encr_key (DS->key, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.defaultDc"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.dcSigned"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dc :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->dc, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.ourId"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setDhParams"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" root :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->root, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" prime :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_binlog_encr_key (DS->prime, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setPts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setQts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->qts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setDate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setSeq"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_binlog_encr_key (DS->key, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g_key :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_binlog_encr_key (DS->g_key, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->state, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" ttl :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->ttl, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" layer :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->layer, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" in_seq_no :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->in_seq_no, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_in_seq_no :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->last_in_seq_no, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" out_seq_no :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->out_seq_no, field14); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 27)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key_fingerprint :"); } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->key_fingerprint, field15); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.encrChatExchangeNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" exchange_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->exchange_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" key :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_binlog_encr_key (DS->key, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->state, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.userDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.userNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" access_hash :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->access_hash, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" first_name :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->first_name, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_name :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->last_name, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" username :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->username, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" real_first_name :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->real_first_name, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" real_last_name :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->real_last_name, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_photo :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user_profile_photo (DS->user_photo, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_in :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->last_read_in, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_out :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->last_read_out, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 26)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bot_info :"); } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bot_info (DS->bot_info, field14); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" title :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->title, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_num :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_num, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" participants :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->participants, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chat_photo :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_photo (DS->chat_photo, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" admin :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->admin, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_in :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->last_read_in, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 25)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" last_read_out :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->last_read_out, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatAddParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" inviter_id :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->inviter_id, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.chatDelParticipant"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->user_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.setMsgId"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" old_id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->old_id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_id :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->new_id, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageDelete"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->lid, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->lid, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->to_type, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->to_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_from_id :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_from_id, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 18)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" fwd_date :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->fwd_date, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" action :"); } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_action (DS->action, field11); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_id :"); } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->reply_id, field12); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 24)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" reply_markup :"); } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_reply_markup (DS->reply_markup, field13); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.messageEncrNew"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" flags :"); } + struct paramed_type *var0 = INT2PTR (*DS->flags); + eprintf (" %d", (int)PTR2INT (var0)); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->lid, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" from_id :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->from_id, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_type :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->to_type, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 17)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" to_id :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->to_id, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 19)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 20)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 21)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_media :"); } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_decrypted_message_media (DS->encr_media, field8); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 22)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" encr_action :"); } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_decrypted_message_action (DS->encr_action, field9); + if (multiline_output >= 2) { eprintf ("\n"); } + } + if (PTR2INT (var0) & (1 << 23)) { + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_encrypted_file (DS->file, field10); + if (multiline_output >= 2) { eprintf ("\n"); } + } + return 0; +} +int print_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.msgUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" lid :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_long (DS->lid, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + eprintf (" binlog.resetAuthorization"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + eprintf (" contacts.blocked"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->blocked, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + eprintf (" contacts.blockedSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->count, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" blocked :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->blocked, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + eprintf (" contacts.contactsNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + eprintf (" contacts.contacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" contacts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->contacts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; } + eprintf (" contacts.found"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->results, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; } + eprintf (" contacts.importedContacts"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" imported :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->imported, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" retry_contacts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->retry_contacts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; } + eprintf (" contacts.link"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" my_link :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_contact_link (DS->my_link, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" foreign_link :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_contact_link (DS->foreign_link, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user (DS->user, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; } + eprintf (" contacts.suggested"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->results, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; } + eprintf (" geochats.located"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" results :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->results, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + eprintf (" geochats.messages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + eprintf (" geochats.messagesSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->count, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; } + eprintf (" geochats.statedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" message :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_geo_chat_message (DS->message, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + eprintf (" help.appUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" critical :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bool (DS->critical, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" url :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->url, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" text :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->text, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + eprintf (" help.noAppUpdate"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->message, field1); + return 0; +} +int print_ds_constructor_help_support (struct tl_ds_help_support *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; } + eprintf (" help.support"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" phone_number :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->phone_number, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" user :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_user (DS->user, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return -1; } + eprintf (" messages.affectedHistory"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" offset :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->offset, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; } + eprintf (" messages.affectedMessages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + eprintf (" messages.allStickersNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + eprintf (" messages.allStickers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->hash, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" packs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->packs, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" sets :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->sets, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->documents, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; } + eprintf (" messages.chatFull"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" full_chat :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_chat_full (DS->full_chat, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field1); + return 0; +} +int print_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + eprintf (" messages.dhConfigNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->random, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + eprintf (" messages.dhConfig"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" g :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->g, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" p :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->p, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" version :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->version, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" random :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->random, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + eprintf (" messages.dialogs"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dialogs :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->dialogs, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + eprintf (" messages.dialogsSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->count, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" dialogs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->dialogs, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_message_empty (struct tl_ds_messages_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; } + eprintf (" messages.messageEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + eprintf (" messages.messages"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + eprintf (" messages.messagesSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->count, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + eprintf (" messages.sentEncryptedMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + eprintf (" messages.sentEncryptedFile"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" file :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_encrypted_file (DS->file, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + eprintf (" messages.sentMessage"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + eprintf (" messages.sentMessageLink"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" id :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->id, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" media :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_message_media (DS->media, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts_count, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" links :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->links, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field7); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; } + eprintf (" messages.stickerSet"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" set :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_sticker_set (DS->set, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" packs :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->packs, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" documents :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->documents, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + eprintf (" messages.stickersNotModified"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + eprintf (" messages.stickers"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" hash :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_string (DS->hash, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" stickers :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->stickers, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; } + eprintf (" photos.photo"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photo :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_photo (DS->photo, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + eprintf (" photos.photos"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photos :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->photos, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + eprintf (" photos.photosSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" count :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->count, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" photos :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->photos, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileUnknown"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileJpeg"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileGif"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePng"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePdf"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMp3"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMov"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.filePartial"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileMp4"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + eprintf (" storage.fileWebp"); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.differenceEmpty"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.difference"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->new_messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_encrypted_messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->new_encrypted_messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" other_updates :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->other_updates, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" state :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_updates_state (DS->state, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + eprintf (" updates.differenceSlice"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_messages :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->new_messages, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" new_encrypted_messages :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->new_encrypted_messages, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" other_updates :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->other_updates, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" chats :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->chats, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" users :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + print_ds_type_vector ((void *)DS->users, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" intermediate_state :"); } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_updates_state (DS->intermediate_state, field6); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; } + eprintf (" updates.state"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" pts :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->pts, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" qts :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->qts, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" date :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->date, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" seq :"); } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->seq, field4); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" unread_count :"); } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->unread_count, field5); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_constructor_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; } + eprintf (" upload.file"); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" type :"); } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_storage_file_type (DS->type, field1); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" mtime :"); } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_int (DS->mtime, field2); + if (multiline_output >= 2) { eprintf ("\n"); } + if (multiline_output >= 2) { print_offset (); } + if (!disable_field_names) { eprintf (" bytes :"); } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + print_ds_type_bare_bytes (DS->bytes, field3); + if (multiline_output >= 2) { eprintf ("\n"); } + return 0; +} +int print_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_days_t_t_l (DS, T); + return res; +} +int print_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_days_t_t_l (DS, T); + return res; +} +int print_ds_type_audio (struct tl_ds_audio *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x586988d8: res = print_ds_constructor_audio_empty (DS, T); break; + case 0xc7ac6496: res = print_ds_constructor_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_audio (struct tl_ds_audio *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x586988d8: res = print_ds_constructor_audio_empty (DS, T); break; + case 0xc7ac6496: res = print_ds_constructor_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_authorization (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_authorization (struct tl_ds_authorization *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_authorization (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bool (struct tl_ds_bool *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xbc799737: res = print_ds_constructor_bool_false (DS, T); break; + case 0x997275b5: res = print_ds_constructor_bool_true (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_bool (struct tl_ds_bool *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xbc799737: res = print_ds_constructor_bool_false (DS, T); break; + case 0x997275b5: res = print_ds_constructor_bool_true (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc27ac8c7: res = print_ds_constructor_bot_command (DS, T); break; + case 0xb79d22ab: res = print_ds_constructor_bot_command_old (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc27ac8c7: res = print_ds_constructor_bot_command (DS, T); break; + case 0xb79d22ab: res = print_ds_constructor_bot_command_old (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xbb2e37ce: res = print_ds_constructor_bot_info_empty (DS, T); break; + case 0x09cf585d: res = print_ds_constructor_bot_info (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xbb2e37ce: res = print_ds_constructor_bot_info_empty (DS, T); break; + case 0x09cf585d: res = print_ds_constructor_bot_info (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bytes (struct tl_ds_string *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_bytes (DS, T); + return res; +} +int print_ds_type_bare_bytes (struct tl_ds_string *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_bytes (DS, T); + return res; +} +int print_ds_type_chat (struct tl_ds_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9ba2d800: res = print_ds_constructor_chat_empty (DS, T); break; + case 0x6e9c9bc7: res = print_ds_constructor_chat (DS, T); break; + case 0xfb0ccc41: res = print_ds_constructor_chat_forbidden (DS, T); break; + case 0x75eaea5a: res = print_ds_constructor_geo_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat (struct tl_ds_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9ba2d800: res = print_ds_constructor_chat_empty (DS, T); break; + case 0x6e9c9bc7: res = print_ds_constructor_chat (DS, T); break; + case 0xfb0ccc41: res = print_ds_constructor_chat_forbidden (DS, T); break; + case 0x75eaea5a: res = print_ds_constructor_geo_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5a686d7c: res = print_ds_constructor_chat_invite_already (DS, T); break; + case 0xce917dcd: res = print_ds_constructor_chat_invite (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5a686d7c: res = print_ds_constructor_chat_invite_already (DS, T); break; + case 0xce917dcd: res = print_ds_constructor_chat_invite (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_located (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_located (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_participant (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_chat_participant (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0fd2bb8a: res = print_ds_constructor_chat_participants_forbidden (DS, T); break; + case 0x7841b415: res = print_ds_constructor_chat_participants (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0fd2bb8a: res = print_ds_constructor_chat_participants_forbidden (DS, T); break; + case 0x7841b415: res = print_ds_constructor_chat_participants (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x37c1011c: res = print_ds_constructor_chat_photo_empty (DS, T); break; + case 0x6153276a: res = print_ds_constructor_chat_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x37c1011c: res = print_ds_constructor_chat_photo_empty (DS, T); break; + case 0x6153276a: res = print_ds_constructor_chat_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_client_d_h_inner_data (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_client_d_h_inner_data (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_config (struct tl_ds_config *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_config (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_config (struct tl_ds_config *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_config (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contact (struct tl_ds_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contact (struct tl_ds_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_blocked (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_blocked (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_contact_found (DS, T); + return res; +} +int print_ds_type_bare_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_contact_found (DS, T); + return res; +} +int print_ds_type_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5f4f9247: res = print_ds_constructor_contact_link_unknown (DS, T); break; + case 0xfeedd3ad: res = print_ds_constructor_contact_link_none (DS, T); break; + case 0x268f3f59: res = print_ds_constructor_contact_link_has_phone (DS, T); break; + case 0xd502c2d0: res = print_ds_constructor_contact_link_contact (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5f4f9247: res = print_ds_constructor_contact_link_unknown (DS, T); break; + case 0xfeedd3ad: res = print_ds_constructor_contact_link_none (DS, T); break; + case 0x268f3f59: res = print_ds_constructor_contact_link_has_phone (DS, T); break; + case 0xd502c2d0: res = print_ds_constructor_contact_link_contact (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_status (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_status (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_suggested (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contact_suggested (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x2ec2a43c: res = print_ds_constructor_dc_option_l28 (DS, T); break; + case 0x05d8c6cc: res = print_ds_constructor_dc_option (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x2ec2a43c: res = print_ds_constructor_dc_option_l28 (DS, T); break; + case 0x05d8c6cc: res = print_ds_constructor_dc_option (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x204d3878: res = print_ds_constructor_decrypted_message (DS, T); break; + case 0x73164160: res = print_ds_constructor_decrypted_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x204d3878: res = print_ds_constructor_decrypted_message (DS, T); break; + case 0x73164160: res = print_ds_constructor_decrypted_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xa1733aec: res = print_ds_constructor_decrypted_message_action_set_message_t_t_l (DS, T); break; + case 0x0c4f40be: res = print_ds_constructor_decrypted_message_action_read_messages (DS, T); break; + case 0x65614304: res = print_ds_constructor_decrypted_message_action_delete_messages (DS, T); break; + case 0x8ac1f475: res = print_ds_constructor_decrypted_message_action_screenshot_messages (DS, T); break; + case 0x6719e45c: res = print_ds_constructor_decrypted_message_action_flush_history (DS, T); break; + case 0x511110b0: res = print_ds_constructor_decrypted_message_action_resend (DS, T); break; + case 0xf3048883: res = print_ds_constructor_decrypted_message_action_notify_layer (DS, T); break; + case 0xccb27641: res = print_ds_constructor_decrypted_message_action_typing (DS, T); break; + case 0xf3c9611b: res = print_ds_constructor_decrypted_message_action_request_key (DS, T); break; + case 0x6fe1735b: res = print_ds_constructor_decrypted_message_action_accept_key (DS, T); break; + case 0xdd05ec6b: res = print_ds_constructor_decrypted_message_action_abort_key (DS, T); break; + case 0xec2e0b9b: res = print_ds_constructor_decrypted_message_action_commit_key (DS, T); break; + case 0xa82fdd63: res = print_ds_constructor_decrypted_message_action_noop (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xa1733aec: res = print_ds_constructor_decrypted_message_action_set_message_t_t_l (DS, T); break; + case 0x0c4f40be: res = print_ds_constructor_decrypted_message_action_read_messages (DS, T); break; + case 0x65614304: res = print_ds_constructor_decrypted_message_action_delete_messages (DS, T); break; + case 0x8ac1f475: res = print_ds_constructor_decrypted_message_action_screenshot_messages (DS, T); break; + case 0x6719e45c: res = print_ds_constructor_decrypted_message_action_flush_history (DS, T); break; + case 0x511110b0: res = print_ds_constructor_decrypted_message_action_resend (DS, T); break; + case 0xf3048883: res = print_ds_constructor_decrypted_message_action_notify_layer (DS, T); break; + case 0xccb27641: res = print_ds_constructor_decrypted_message_action_typing (DS, T); break; + case 0xf3c9611b: res = print_ds_constructor_decrypted_message_action_request_key (DS, T); break; + case 0x6fe1735b: res = print_ds_constructor_decrypted_message_action_accept_key (DS, T); break; + case 0xdd05ec6b: res = print_ds_constructor_decrypted_message_action_abort_key (DS, T); break; + case 0xec2e0b9b: res = print_ds_constructor_decrypted_message_action_commit_key (DS, T); break; + case 0xa82fdd63: res = print_ds_constructor_decrypted_message_action_noop (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_decrypted_message_layer (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_decrypted_message_layer (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x089f5c4a: res = print_ds_constructor_decrypted_message_media_empty (DS, T); break; + case 0x32798a8c: res = print_ds_constructor_decrypted_message_media_photo (DS, T); break; + case 0x35480a59: res = print_ds_constructor_decrypted_message_media_geo_point (DS, T); break; + case 0x588a0a97: res = print_ds_constructor_decrypted_message_media_contact (DS, T); break; + case 0xb095434b: res = print_ds_constructor_decrypted_message_media_document (DS, T); break; + case 0x524a415d: res = print_ds_constructor_decrypted_message_media_video (DS, T); break; + case 0x57e0a9cb: res = print_ds_constructor_decrypted_message_media_audio (DS, T); break; + case 0xfa95b0dd: res = print_ds_constructor_decrypted_message_media_external_document (DS, T); break; + case 0x4cee6ef3: res = print_ds_constructor_decrypted_message_media_video_l12 (DS, T); break; + case 0x6080758f: res = print_ds_constructor_decrypted_message_media_audio_l12 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x089f5c4a: res = print_ds_constructor_decrypted_message_media_empty (DS, T); break; + case 0x32798a8c: res = print_ds_constructor_decrypted_message_media_photo (DS, T); break; + case 0x35480a59: res = print_ds_constructor_decrypted_message_media_geo_point (DS, T); break; + case 0x588a0a97: res = print_ds_constructor_decrypted_message_media_contact (DS, T); break; + case 0xb095434b: res = print_ds_constructor_decrypted_message_media_document (DS, T); break; + case 0x524a415d: res = print_ds_constructor_decrypted_message_media_video (DS, T); break; + case 0x57e0a9cb: res = print_ds_constructor_decrypted_message_media_audio (DS, T); break; + case 0xfa95b0dd: res = print_ds_constructor_decrypted_message_media_external_document (DS, T); break; + case 0x4cee6ef3: res = print_ds_constructor_decrypted_message_media_video_l12 (DS, T); break; + case 0x6080758f: res = print_ds_constructor_decrypted_message_media_audio_l12 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_dialog (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_dialog (struct tl_ds_dialog *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_dialog (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_disabled_feature (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_disabled_feature (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_document (struct tl_ds_document *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x36f8c871: res = print_ds_constructor_document_empty (DS, T); break; + case 0xf9a39f4f: res = print_ds_constructor_document (DS, T); break; + case 0x9efc6326: res = print_ds_constructor_document_l19 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_document (struct tl_ds_document *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x36f8c871: res = print_ds_constructor_document_empty (DS, T); break; + case 0xf9a39f4f: res = print_ds_constructor_document (DS, T); break; + case 0x9efc6326: res = print_ds_constructor_document_l19 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x6c37c15c: res = print_ds_constructor_document_attribute_image_size (DS, T); break; + case 0x11b58939: res = print_ds_constructor_document_attribute_animated (DS, T); break; + case 0x994c9882: res = print_ds_constructor_document_attribute_sticker_l28 (DS, T); break; + case 0x3a556302: res = print_ds_constructor_document_attribute_sticker (DS, T); break; + case 0x5910cccb: res = print_ds_constructor_document_attribute_video (DS, T); break; + case 0x051448e5: res = print_ds_constructor_document_attribute_audio (DS, T); break; + case 0x15590068: res = print_ds_constructor_document_attribute_filename (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x6c37c15c: res = print_ds_constructor_document_attribute_image_size (DS, T); break; + case 0x11b58939: res = print_ds_constructor_document_attribute_animated (DS, T); break; + case 0x994c9882: res = print_ds_constructor_document_attribute_sticker_l28 (DS, T); break; + case 0x3a556302: res = print_ds_constructor_document_attribute_sticker (DS, T); break; + case 0x5910cccb: res = print_ds_constructor_document_attribute_video (DS, T); break; + case 0x051448e5: res = print_ds_constructor_document_attribute_audio (DS, T); break; + case 0x15590068: res = print_ds_constructor_document_attribute_filename (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_double (double *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_double (DS, T); + return res; +} +int print_ds_type_bare_double (double *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_double (DS, T); + return res; +} +int print_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xab7ec0a0: res = print_ds_constructor_encrypted_chat_empty (DS, T); break; + case 0x3bf703dc: res = print_ds_constructor_encrypted_chat_waiting (DS, T); break; + case 0xc878527e: res = print_ds_constructor_encrypted_chat_requested (DS, T); break; + case 0xfa56ce36: res = print_ds_constructor_encrypted_chat (DS, T); break; + case 0x13d6dd27: res = print_ds_constructor_encrypted_chat_discarded (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xab7ec0a0: res = print_ds_constructor_encrypted_chat_empty (DS, T); break; + case 0x3bf703dc: res = print_ds_constructor_encrypted_chat_waiting (DS, T); break; + case 0xc878527e: res = print_ds_constructor_encrypted_chat_requested (DS, T); break; + case 0xfa56ce36: res = print_ds_constructor_encrypted_chat (DS, T); break; + case 0x13d6dd27: res = print_ds_constructor_encrypted_chat_discarded (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc21f497e: res = print_ds_constructor_encrypted_file_empty (DS, T); break; + case 0x4a70994c: res = print_ds_constructor_encrypted_file (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc21f497e: res = print_ds_constructor_encrypted_file_empty (DS, T); break; + case 0x4a70994c: res = print_ds_constructor_encrypted_file (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xed18c118: res = print_ds_constructor_encrypted_message (DS, T); break; + case 0x23734b06: res = print_ds_constructor_encrypted_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xed18c118: res = print_ds_constructor_encrypted_message (DS, T); break; + case 0x23734b06: res = print_ds_constructor_encrypted_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_error (struct tl_ds_error *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_error (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_error (struct tl_ds_error *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_error (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x69df3769: res = print_ds_constructor_chat_invite_empty (DS, T); break; + case 0xfc2e05bc: res = print_ds_constructor_chat_invite_exported (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x69df3769: res = print_ds_constructor_chat_invite_empty (DS, T); break; + case 0xfc2e05bc: res = print_ds_constructor_chat_invite_exported (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_file_location (struct tl_ds_file_location *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x7c596b46: res = print_ds_constructor_file_location_unavailable (DS, T); break; + case 0x53d69076: res = print_ds_constructor_file_location (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_file_location (struct tl_ds_file_location *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x7c596b46: res = print_ds_constructor_file_location_unavailable (DS, T); break; + case 0x53d69076: res = print_ds_constructor_file_location (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x60311a9b: res = print_ds_constructor_geo_chat_message_empty (DS, T); break; + case 0x4505f8e1: res = print_ds_constructor_geo_chat_message (DS, T); break; + case 0xd34fa24e: res = print_ds_constructor_geo_chat_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x60311a9b: res = print_ds_constructor_geo_chat_message_empty (DS, T); break; + case 0x4505f8e1: res = print_ds_constructor_geo_chat_message (DS, T); break; + case 0xd34fa24e: res = print_ds_constructor_geo_chat_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1117dd5f: res = print_ds_constructor_geo_point_empty (DS, T); break; + case 0x2049d70c: res = print_ds_constructor_geo_point (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1117dd5f: res = print_ds_constructor_geo_point_empty (DS, T); break; + case 0x2049d70c: res = print_ds_constructor_geo_point (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_imported_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_imported_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_app_event (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_app_event (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xd95adc84: res = print_ds_constructor_input_audio_empty (DS, T); break; + case 0x77d440ff: res = print_ds_constructor_input_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xd95adc84: res = print_ds_constructor_input_audio_empty (DS, T); break; + case 0x77d440ff: res = print_ds_constructor_input_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1ca48f57: res = print_ds_constructor_input_chat_photo_empty (DS, T); break; + case 0x94254732: res = print_ds_constructor_input_chat_uploaded_photo (DS, T); break; + case 0xb2e1bf08: res = print_ds_constructor_input_chat_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1ca48f57: res = print_ds_constructor_input_chat_photo_empty (DS, T); break; + case 0x94254732: res = print_ds_constructor_input_chat_uploaded_photo (DS, T); break; + case 0xb2e1bf08: res = print_ds_constructor_input_chat_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_phone_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_phone_contact (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_document (struct tl_ds_input_document *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x72f0eaae: res = print_ds_constructor_input_document_empty (DS, T); break; + case 0x18798952: res = print_ds_constructor_input_document (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_document (struct tl_ds_input_document *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x72f0eaae: res = print_ds_constructor_input_document_empty (DS, T); break; + case 0x18798952: res = print_ds_constructor_input_document (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_encrypted_chat (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_encrypted_chat (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1837c364: res = print_ds_constructor_input_encrypted_file_empty (DS, T); break; + case 0x64bd0306: res = print_ds_constructor_input_encrypted_file_uploaded (DS, T); break; + case 0x5a17b5e5: res = print_ds_constructor_input_encrypted_file (DS, T); break; + case 0x2dc173c8: res = print_ds_constructor_input_encrypted_file_big_uploaded (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1837c364: res = print_ds_constructor_input_encrypted_file_empty (DS, T); break; + case 0x64bd0306: res = print_ds_constructor_input_encrypted_file_uploaded (DS, T); break; + case 0x5a17b5e5: res = print_ds_constructor_input_encrypted_file (DS, T); break; + case 0x2dc173c8: res = print_ds_constructor_input_encrypted_file_big_uploaded (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_file (struct tl_ds_input_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf52ff27f: res = print_ds_constructor_input_file (DS, T); break; + case 0xfa4f0bb5: res = print_ds_constructor_input_file_big (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_file (struct tl_ds_input_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf52ff27f: res = print_ds_constructor_input_file (DS, T); break; + case 0xfa4f0bb5: res = print_ds_constructor_input_file_big (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x14637196: res = print_ds_constructor_input_file_location (DS, T); break; + case 0x3d0364ec: res = print_ds_constructor_input_video_file_location (DS, T); break; + case 0xf5235d55: res = print_ds_constructor_input_encrypted_file_location (DS, T); break; + case 0x74dc404d: res = print_ds_constructor_input_audio_file_location (DS, T); break; + case 0x4e45abe9: res = print_ds_constructor_input_document_file_location (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x14637196: res = print_ds_constructor_input_file_location (DS, T); break; + case 0x3d0364ec: res = print_ds_constructor_input_video_file_location (DS, T); break; + case 0xf5235d55: res = print_ds_constructor_input_encrypted_file_location (DS, T); break; + case 0x74dc404d: res = print_ds_constructor_input_audio_file_location (DS, T); break; + case 0x4e45abe9: res = print_ds_constructor_input_document_file_location (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_geo_chat (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_geo_chat (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe4c123d6: res = print_ds_constructor_input_geo_point_empty (DS, T); break; + case 0xf3b7acc9: res = print_ds_constructor_input_geo_point (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe4c123d6: res = print_ds_constructor_input_geo_point_empty (DS, T); break; + case 0xf3b7acc9: res = print_ds_constructor_input_geo_point (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_media (struct tl_ds_input_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9664f57f: res = print_ds_constructor_input_media_empty (DS, T); break; + case 0xf7aff1c0: res = print_ds_constructor_input_media_uploaded_photo (DS, T); break; + case 0xe9bfb4f3: res = print_ds_constructor_input_media_photo (DS, T); break; + case 0xf9c44144: res = print_ds_constructor_input_media_geo_point (DS, T); break; + case 0xa6e45987: res = print_ds_constructor_input_media_contact (DS, T); break; + case 0xe13fd4bc: res = print_ds_constructor_input_media_uploaded_video (DS, T); break; + case 0x96fb97dc: res = print_ds_constructor_input_media_uploaded_thumb_video (DS, T); break; + case 0x936a4ebd: res = print_ds_constructor_input_media_video (DS, T); break; + case 0x4e498cab: res = print_ds_constructor_input_media_uploaded_audio (DS, T); break; + case 0x89938781: res = print_ds_constructor_input_media_audio (DS, T); break; + case 0xffe76b78: res = print_ds_constructor_input_media_uploaded_document (DS, T); break; + case 0x41481486: res = print_ds_constructor_input_media_uploaded_thumb_document (DS, T); break; + case 0xd184e841: res = print_ds_constructor_input_media_document (DS, T); break; + case 0x2827a81a: res = print_ds_constructor_input_media_venue (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_media (struct tl_ds_input_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9664f57f: res = print_ds_constructor_input_media_empty (DS, T); break; + case 0xf7aff1c0: res = print_ds_constructor_input_media_uploaded_photo (DS, T); break; + case 0xe9bfb4f3: res = print_ds_constructor_input_media_photo (DS, T); break; + case 0xf9c44144: res = print_ds_constructor_input_media_geo_point (DS, T); break; + case 0xa6e45987: res = print_ds_constructor_input_media_contact (DS, T); break; + case 0xe13fd4bc: res = print_ds_constructor_input_media_uploaded_video (DS, T); break; + case 0x96fb97dc: res = print_ds_constructor_input_media_uploaded_thumb_video (DS, T); break; + case 0x936a4ebd: res = print_ds_constructor_input_media_video (DS, T); break; + case 0x4e498cab: res = print_ds_constructor_input_media_uploaded_audio (DS, T); break; + case 0x89938781: res = print_ds_constructor_input_media_audio (DS, T); break; + case 0xffe76b78: res = print_ds_constructor_input_media_uploaded_document (DS, T); break; + case 0x41481486: res = print_ds_constructor_input_media_uploaded_thumb_document (DS, T); break; + case 0xd184e841: res = print_ds_constructor_input_media_document (DS, T); break; + case 0x2827a81a: res = print_ds_constructor_input_media_venue (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb8bc5b0c: res = print_ds_constructor_input_notify_peer (DS, T); break; + case 0x193b4417: res = print_ds_constructor_input_notify_users (DS, T); break; + case 0x4a95e84e: res = print_ds_constructor_input_notify_chats (DS, T); break; + case 0xa429b886: res = print_ds_constructor_input_notify_all (DS, T); break; + case 0x4d8ddec8: res = print_ds_constructor_input_notify_geo_chat_peer (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb8bc5b0c: res = print_ds_constructor_input_notify_peer (DS, T); break; + case 0x193b4417: res = print_ds_constructor_input_notify_users (DS, T); break; + case 0x4a95e84e: res = print_ds_constructor_input_notify_chats (DS, T); break; + case 0xa429b886: res = print_ds_constructor_input_notify_all (DS, T); break; + case 0x4d8ddec8: res = print_ds_constructor_input_notify_geo_chat_peer (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x7f3b18ea: res = print_ds_constructor_input_peer_empty (DS, T); break; + case 0x7da07ec9: res = print_ds_constructor_input_peer_self (DS, T); break; + case 0x1023dbe8: res = print_ds_constructor_input_peer_contact (DS, T); break; + case 0x9b447325: res = print_ds_constructor_input_peer_foreign (DS, T); break; + case 0x179be863: res = print_ds_constructor_input_peer_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x7f3b18ea: res = print_ds_constructor_input_peer_empty (DS, T); break; + case 0x7da07ec9: res = print_ds_constructor_input_peer_self (DS, T); break; + case 0x1023dbe8: res = print_ds_constructor_input_peer_contact (DS, T); break; + case 0x9b447325: res = print_ds_constructor_input_peer_foreign (DS, T); break; + case 0x179be863: res = print_ds_constructor_input_peer_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf03064d8: res = print_ds_constructor_input_peer_notify_events_empty (DS, T); break; + case 0xe86a2c74: res = print_ds_constructor_input_peer_notify_events_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf03064d8: res = print_ds_constructor_input_peer_notify_events_empty (DS, T); break; + case 0xe86a2c74: res = print_ds_constructor_input_peer_notify_events_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_peer_notify_settings (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_peer_notify_settings (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1cd7bf0d: res = print_ds_constructor_input_photo_empty (DS, T); break; + case 0xfb95c6c4: res = print_ds_constructor_input_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1cd7bf0d: res = print_ds_constructor_input_photo_empty (DS, T); break; + case 0xfb95c6c4: res = print_ds_constructor_input_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xade6b004: res = print_ds_constructor_input_photo_crop_auto (DS, T); break; + case 0xd9915325: res = print_ds_constructor_input_photo_crop (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xade6b004: res = print_ds_constructor_input_photo_crop_auto (DS, T); break; + case 0xd9915325: res = print_ds_constructor_input_photo_crop (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_privacy_key_status_timestamp (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_input_privacy_key_status_timestamp (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0d09e07b: res = print_ds_constructor_input_privacy_value_allow_contacts (DS, T); break; + case 0x184b35ce: res = print_ds_constructor_input_privacy_value_allow_all (DS, T); break; + case 0x131cc67f: res = print_ds_constructor_input_privacy_value_allow_users (DS, T); break; + case 0x0ba52007: res = print_ds_constructor_input_privacy_value_disallow_contacts (DS, T); break; + case 0xd66b66c9: res = print_ds_constructor_input_privacy_value_disallow_all (DS, T); break; + case 0x90110467: res = print_ds_constructor_input_privacy_value_disallow_users (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0d09e07b: res = print_ds_constructor_input_privacy_value_allow_contacts (DS, T); break; + case 0x184b35ce: res = print_ds_constructor_input_privacy_value_allow_all (DS, T); break; + case 0x131cc67f: res = print_ds_constructor_input_privacy_value_allow_users (DS, T); break; + case 0x0ba52007: res = print_ds_constructor_input_privacy_value_disallow_contacts (DS, T); break; + case 0xd66b66c9: res = print_ds_constructor_input_privacy_value_disallow_all (DS, T); break; + case 0x90110467: res = print_ds_constructor_input_privacy_value_disallow_users (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xffb62b95: res = print_ds_constructor_input_sticker_set_empty (DS, T); break; + case 0x9de7a269: res = print_ds_constructor_input_sticker_set_i_d (DS, T); break; + case 0x861cc8a0: res = print_ds_constructor_input_sticker_set_short_name (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xffb62b95: res = print_ds_constructor_input_sticker_set_empty (DS, T); break; + case 0x9de7a269: res = print_ds_constructor_input_sticker_set_i_d (DS, T); break; + case 0x861cc8a0: res = print_ds_constructor_input_sticker_set_short_name (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_user (struct tl_ds_input_user *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb98886cf: res = print_ds_constructor_input_user_empty (DS, T); break; + case 0xf7c1b13f: res = print_ds_constructor_input_user_self (DS, T); break; + case 0x86e94f65: res = print_ds_constructor_input_user_contact (DS, T); break; + case 0x655e74ff: res = print_ds_constructor_input_user_foreign (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_user (struct tl_ds_input_user *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb98886cf: res = print_ds_constructor_input_user_empty (DS, T); break; + case 0xf7c1b13f: res = print_ds_constructor_input_user_self (DS, T); break; + case 0x86e94f65: res = print_ds_constructor_input_user_contact (DS, T); break; + case 0x655e74ff: res = print_ds_constructor_input_user_foreign (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_input_video (struct tl_ds_input_video *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5508ec75: res = print_ds_constructor_input_video_empty (DS, T); break; + case 0xee579652: res = print_ds_constructor_input_video (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_input_video (struct tl_ds_input_video *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5508ec75: res = print_ds_constructor_input_video_empty (DS, T); break; + case 0xee579652: res = print_ds_constructor_input_video (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_int (int *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_int (DS, T); + return res; +} +int print_ds_type_bare_int (int *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_int (DS, T); + return res; +} +int print_ds_type_int128 (struct tl_ds_int128 *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_int128 (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_int128 (struct tl_ds_int128 *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_int128 (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_int256 (struct tl_ds_int256 *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_int256 (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_int256 (struct tl_ds_int256 *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_int256 (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_keyboard_button (DS, T); + return res; +} +int print_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_keyboard_button (DS, T); + return res; +} +int print_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_keyboard_button_row (DS, T); + return res; +} +int print_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_keyboard_button_row (DS, T); + return res; +} +int print_ds_type_long (long long *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_long (DS, T); + return res; +} +int print_ds_type_bare_long (long long *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_long (DS, T); + return res; +} +int print_ds_type_message (struct tl_ds_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x83e5de54: res = print_ds_constructor_message_empty (DS, T); break; + case 0xc3060325: res = print_ds_constructor_message (DS, T); break; + case 0x1d86f70e: res = print_ds_constructor_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_message (struct tl_ds_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x83e5de54: res = print_ds_constructor_message_empty (DS, T); break; + case 0xc3060325: res = print_ds_constructor_message (DS, T); break; + case 0x1d86f70e: res = print_ds_constructor_message_service (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_message_action (struct tl_ds_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb6aef7b0: res = print_ds_constructor_message_action_empty (DS, T); break; + case 0xa6638b9a: res = print_ds_constructor_message_action_chat_create (DS, T); break; + case 0xb5a1ce5a: res = print_ds_constructor_message_action_chat_edit_title (DS, T); break; + case 0x7fcb13a8: res = print_ds_constructor_message_action_chat_edit_photo (DS, T); break; + case 0x95e3fbef: res = print_ds_constructor_message_action_chat_delete_photo (DS, T); break; + case 0x5e3cfc4b: res = print_ds_constructor_message_action_chat_add_user (DS, T); break; + case 0xb2ae9b0c: res = print_ds_constructor_message_action_chat_delete_user (DS, T); break; + case 0x6f038ebc: res = print_ds_constructor_message_action_geo_chat_create (DS, T); break; + case 0x0c7d53de: res = print_ds_constructor_message_action_geo_chat_checkin (DS, T); break; + case 0xf89cf5e8: res = print_ds_constructor_message_action_chat_joined_by_link (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_message_action (struct tl_ds_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb6aef7b0: res = print_ds_constructor_message_action_empty (DS, T); break; + case 0xa6638b9a: res = print_ds_constructor_message_action_chat_create (DS, T); break; + case 0xb5a1ce5a: res = print_ds_constructor_message_action_chat_edit_title (DS, T); break; + case 0x7fcb13a8: res = print_ds_constructor_message_action_chat_edit_photo (DS, T); break; + case 0x95e3fbef: res = print_ds_constructor_message_action_chat_delete_photo (DS, T); break; + case 0x5e3cfc4b: res = print_ds_constructor_message_action_chat_add_user (DS, T); break; + case 0xb2ae9b0c: res = print_ds_constructor_message_action_chat_delete_user (DS, T); break; + case 0x6f038ebc: res = print_ds_constructor_message_action_geo_chat_create (DS, T); break; + case 0x0c7d53de: res = print_ds_constructor_message_action_geo_chat_checkin (DS, T); break; + case 0xf89cf5e8: res = print_ds_constructor_message_action_chat_joined_by_link (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_message_media (struct tl_ds_message_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3ded6320: res = print_ds_constructor_message_media_empty (DS, T); break; + case 0x3d8ce53d: res = print_ds_constructor_message_media_photo (DS, T); break; + case 0x5bcf1675: res = print_ds_constructor_message_media_video (DS, T); break; + case 0x56e0d474: res = print_ds_constructor_message_media_geo (DS, T); break; + case 0x5e7d2f39: res = print_ds_constructor_message_media_contact (DS, T); break; + case 0x9f84f49e: res = print_ds_constructor_message_media_unsupported (DS, T); break; + case 0x2fda2204: res = print_ds_constructor_message_media_document (DS, T); break; + case 0xc6b68300: res = print_ds_constructor_message_media_audio (DS, T); break; + case 0xa32dd600: res = print_ds_constructor_message_media_web_page (DS, T); break; + case 0x7912b71f: res = print_ds_constructor_message_media_venue (DS, T); break; + case 0xc8c45a2a: res = print_ds_constructor_message_media_photo_l27 (DS, T); break; + case 0xa2d24290: res = print_ds_constructor_message_media_video_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_message_media (struct tl_ds_message_media *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3ded6320: res = print_ds_constructor_message_media_empty (DS, T); break; + case 0x3d8ce53d: res = print_ds_constructor_message_media_photo (DS, T); break; + case 0x5bcf1675: res = print_ds_constructor_message_media_video (DS, T); break; + case 0x56e0d474: res = print_ds_constructor_message_media_geo (DS, T); break; + case 0x5e7d2f39: res = print_ds_constructor_message_media_contact (DS, T); break; + case 0x9f84f49e: res = print_ds_constructor_message_media_unsupported (DS, T); break; + case 0x2fda2204: res = print_ds_constructor_message_media_document (DS, T); break; + case 0xc6b68300: res = print_ds_constructor_message_media_audio (DS, T); break; + case 0xa32dd600: res = print_ds_constructor_message_media_web_page (DS, T); break; + case 0x7912b71f: res = print_ds_constructor_message_media_venue (DS, T); break; + case 0xc8c45a2a: res = print_ds_constructor_message_media_photo_l27 (DS, T); break; + case 0xa2d24290: res = print_ds_constructor_message_media_video_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x57e2f66c: res = print_ds_constructor_input_messages_filter_empty (DS, T); break; + case 0x9609a51c: res = print_ds_constructor_input_messages_filter_photos (DS, T); break; + case 0x9fc00e65: res = print_ds_constructor_input_messages_filter_video (DS, T); break; + case 0x56e9f0e4: res = print_ds_constructor_input_messages_filter_photo_video (DS, T); break; + case 0xd95e73bb: res = print_ds_constructor_input_messages_filter_photo_video_documents (DS, T); break; + case 0x9eddf188: res = print_ds_constructor_input_messages_filter_document (DS, T); break; + case 0xcfc87522: res = print_ds_constructor_input_messages_filter_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x57e2f66c: res = print_ds_constructor_input_messages_filter_empty (DS, T); break; + case 0x9609a51c: res = print_ds_constructor_input_messages_filter_photos (DS, T); break; + case 0x9fc00e65: res = print_ds_constructor_input_messages_filter_video (DS, T); break; + case 0x56e9f0e4: res = print_ds_constructor_input_messages_filter_photo_video (DS, T); break; + case 0xd95e73bb: res = print_ds_constructor_input_messages_filter_photo_video_documents (DS, T); break; + case 0x9eddf188: res = print_ds_constructor_input_messages_filter_document (DS, T); break; + case 0xcfc87522: res = print_ds_constructor_input_messages_filter_audio (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_nearest_dc (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_nearest_dc (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9fd40bd8: res = print_ds_constructor_notify_peer (DS, T); break; + case 0xb4c83b4c: res = print_ds_constructor_notify_users (DS, T); break; + case 0xc007cec3: res = print_ds_constructor_notify_chats (DS, T); break; + case 0x74d07c60: res = print_ds_constructor_notify_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9fd40bd8: res = print_ds_constructor_notify_peer (DS, T); break; + case 0xb4c83b4c: res = print_ds_constructor_notify_users (DS, T); break; + case 0xc007cec3: res = print_ds_constructor_notify_chats (DS, T); break; + case 0x74d07c60: res = print_ds_constructor_notify_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_null (struct tl_ds_null *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_null (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_null (struct tl_ds_null *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_null (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x83c95aec: res = print_ds_constructor_p_q_inner_data (DS, T); break; + case 0x3c6a84d4: res = print_ds_constructor_p_q_inner_data_temp (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x83c95aec: res = print_ds_constructor_p_q_inner_data (DS, T); break; + case 0x3c6a84d4: res = print_ds_constructor_p_q_inner_data_temp (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_peer (struct tl_ds_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9db1bc6d: res = print_ds_constructor_peer_user (DS, T); break; + case 0xbad0e5bb: res = print_ds_constructor_peer_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_peer (struct tl_ds_peer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x9db1bc6d: res = print_ds_constructor_peer_user (DS, T); break; + case 0xbad0e5bb: res = print_ds_constructor_peer_chat (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xadd53cb3: res = print_ds_constructor_peer_notify_events_empty (DS, T); break; + case 0x6d1ded88: res = print_ds_constructor_peer_notify_events_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xadd53cb3: res = print_ds_constructor_peer_notify_events_empty (DS, T); break; + case 0x6d1ded88: res = print_ds_constructor_peer_notify_events_all (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x70a68512: res = print_ds_constructor_peer_notify_settings_empty (DS, T); break; + case 0x8d5e11ee: res = print_ds_constructor_peer_notify_settings (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x70a68512: res = print_ds_constructor_peer_notify_settings_empty (DS, T); break; + case 0x8d5e11ee: res = print_ds_constructor_peer_notify_settings (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_photo (struct tl_ds_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x2331b22d: res = print_ds_constructor_photo_empty (DS, T); break; + case 0xc3838076: res = print_ds_constructor_photo (DS, T); break; + case 0x22b56751: res = print_ds_constructor_photo_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_photo (struct tl_ds_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x2331b22d: res = print_ds_constructor_photo_empty (DS, T); break; + case 0xc3838076: res = print_ds_constructor_photo (DS, T); break; + case 0x22b56751: res = print_ds_constructor_photo_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0e17e23c: res = print_ds_constructor_photo_size_empty (DS, T); break; + case 0x77bfb61b: res = print_ds_constructor_photo_size (DS, T); break; + case 0xe9a734fa: res = print_ds_constructor_photo_cached_size (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x0e17e23c: res = print_ds_constructor_photo_size_empty (DS, T); break; + case 0x77bfb61b: res = print_ds_constructor_photo_size (DS, T); break; + case 0xe9a734fa: res = print_ds_constructor_photo_cached_size (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_privacy_key_status_timestamp (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_privacy_key_status_timestamp (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xfffe1bac: res = print_ds_constructor_privacy_value_allow_contacts (DS, T); break; + case 0x65427b82: res = print_ds_constructor_privacy_value_allow_all (DS, T); break; + case 0x4d5bbe0c: res = print_ds_constructor_privacy_value_allow_users (DS, T); break; + case 0xf888fa1a: res = print_ds_constructor_privacy_value_disallow_contacts (DS, T); break; + case 0x8b73e763: res = print_ds_constructor_privacy_value_disallow_all (DS, T); break; + case 0x0c7f49b7: res = print_ds_constructor_privacy_value_disallow_users (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xfffe1bac: res = print_ds_constructor_privacy_value_allow_contacts (DS, T); break; + case 0x65427b82: res = print_ds_constructor_privacy_value_allow_all (DS, T); break; + case 0x4d5bbe0c: res = print_ds_constructor_privacy_value_allow_users (DS, T); break; + case 0xf888fa1a: res = print_ds_constructor_privacy_value_disallow_contacts (DS, T); break; + case 0x8b73e763: res = print_ds_constructor_privacy_value_disallow_all (DS, T); break; + case 0x0c7f49b7: res = print_ds_constructor_privacy_value_disallow_users (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_received_notify_message (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_received_notify_message (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xa03e5b85: res = print_ds_constructor_reply_keyboard_hide (DS, T); break; + case 0xf4108aa0: res = print_ds_constructor_reply_keyboard_force_reply (DS, T); break; + case 0x3502758c: res = print_ds_constructor_reply_keyboard_markup (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xa03e5b85: res = print_ds_constructor_reply_keyboard_hide (DS, T); break; + case 0xf4108aa0: res = print_ds_constructor_reply_keyboard_force_reply (DS, T); break; + case 0x3502758c: res = print_ds_constructor_reply_keyboard_markup (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_res_p_q (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_res_p_q (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x16bf744e: res = print_ds_constructor_send_message_typing_action (DS, T); break; + case 0xfd5ec8f5: res = print_ds_constructor_send_message_cancel_action (DS, T); break; + case 0xa187d66f: res = print_ds_constructor_send_message_record_video_action (DS, T); break; + case 0x92042ff7: res = print_ds_constructor_send_message_upload_video_action_l27 (DS, T); break; + case 0xe9763aec: res = print_ds_constructor_send_message_upload_video_action (DS, T); break; + case 0xd52f73f7: res = print_ds_constructor_send_message_record_audio_action (DS, T); break; + case 0xe6ac8a6f: res = print_ds_constructor_send_message_upload_audio_action_l27 (DS, T); break; + case 0xf351d7ab: res = print_ds_constructor_send_message_upload_audio_action (DS, T); break; + case 0xd1d34a26: res = print_ds_constructor_send_message_upload_photo_action (DS, T); break; + case 0x8faee98e: res = print_ds_constructor_send_message_upload_document_action_l27 (DS, T); break; + case 0xaa0cd9e4: res = print_ds_constructor_send_message_upload_document_action (DS, T); break; + case 0x176f8ba1: res = print_ds_constructor_send_message_geo_location_action (DS, T); break; + case 0x628cbc6f: res = print_ds_constructor_send_message_choose_contact_action (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x16bf744e: res = print_ds_constructor_send_message_typing_action (DS, T); break; + case 0xfd5ec8f5: res = print_ds_constructor_send_message_cancel_action (DS, T); break; + case 0xa187d66f: res = print_ds_constructor_send_message_record_video_action (DS, T); break; + case 0x92042ff7: res = print_ds_constructor_send_message_upload_video_action_l27 (DS, T); break; + case 0xe9763aec: res = print_ds_constructor_send_message_upload_video_action (DS, T); break; + case 0xd52f73f7: res = print_ds_constructor_send_message_record_audio_action (DS, T); break; + case 0xe6ac8a6f: res = print_ds_constructor_send_message_upload_audio_action_l27 (DS, T); break; + case 0xf351d7ab: res = print_ds_constructor_send_message_upload_audio_action (DS, T); break; + case 0xd1d34a26: res = print_ds_constructor_send_message_upload_photo_action (DS, T); break; + case 0x8faee98e: res = print_ds_constructor_send_message_upload_document_action_l27 (DS, T); break; + case 0xaa0cd9e4: res = print_ds_constructor_send_message_upload_document_action (DS, T); break; + case 0x176f8ba1: res = print_ds_constructor_send_message_geo_location_action (DS, T); break; + case 0x628cbc6f: res = print_ds_constructor_send_message_choose_contact_action (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x79cb045d: res = print_ds_constructor_server_d_h_params_fail (DS, T); break; + case 0xd0e8075c: res = print_ds_constructor_server_d_h_params_ok (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x79cb045d: res = print_ds_constructor_server_d_h_params_fail (DS, T); break; + case 0xd0e8075c: res = print_ds_constructor_server_d_h_params_ok (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_server_d_h_inner_data (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_server_d_h_inner_data (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3bcbf734: res = print_ds_constructor_dh_gen_ok (DS, T); break; + case 0x46dc1fb9: res = print_ds_constructor_dh_gen_retry (DS, T); break; + case 0xa69dae02: res = print_ds_constructor_dh_gen_fail (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3bcbf734: res = print_ds_constructor_dh_gen_ok (DS, T); break; + case 0x46dc1fb9: res = print_ds_constructor_dh_gen_retry (DS, T); break; + case 0xa69dae02: res = print_ds_constructor_dh_gen_fail (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_sticker_pack (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_sticker_pack (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_sticker_set (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_sticker_set (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_string (struct tl_ds_string *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_string (DS, T); + return res; +} +int print_ds_type_bare_string (struct tl_ds_string *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_string (DS, T); + return res; +} +int print_ds_type_update (struct tl_ds_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1f2b0afd: res = print_ds_constructor_update_new_message (DS, T); break; + case 0x4e90bfd6: res = print_ds_constructor_update_message_i_d (DS, T); break; + case 0xa20db0e5: res = print_ds_constructor_update_delete_messages (DS, T); break; + case 0x5c486927: res = print_ds_constructor_update_user_typing (DS, T); break; + case 0x9a65ea1f: res = print_ds_constructor_update_chat_user_typing (DS, T); break; + case 0x07761198: res = print_ds_constructor_update_chat_participants (DS, T); break; + case 0x1bfbd823: res = print_ds_constructor_update_user_status (DS, T); break; + case 0xa7332b73: res = print_ds_constructor_update_user_name (DS, T); break; + case 0x95313b0c: res = print_ds_constructor_update_user_photo (DS, T); break; + case 0x2575bbb9: res = print_ds_constructor_update_contact_registered (DS, T); break; + case 0x9d2e67c5: res = print_ds_constructor_update_contact_link (DS, T); break; + case 0x8f06529a: res = print_ds_constructor_update_new_authorization (DS, T); break; + case 0x5a68e3f7: res = print_ds_constructor_update_new_geo_chat_message (DS, T); break; + case 0x12bcbd9a: res = print_ds_constructor_update_new_encrypted_message (DS, T); break; + case 0x1710f156: res = print_ds_constructor_update_encrypted_chat_typing (DS, T); break; + case 0xb4a2e88d: res = print_ds_constructor_update_encryption (DS, T); break; + case 0x38fe25b7: res = print_ds_constructor_update_encrypted_messages_read (DS, T); break; + case 0x3a0eeb22: res = print_ds_constructor_update_chat_participant_add (DS, T); break; + case 0x6e5f8c22: res = print_ds_constructor_update_chat_participant_delete (DS, T); break; + case 0x8e5e9873: res = print_ds_constructor_update_dc_options (DS, T); break; + case 0x80ece81a: res = print_ds_constructor_update_user_blocked (DS, T); break; + case 0xbec268ef: res = print_ds_constructor_update_notify_settings (DS, T); break; + case 0x382dd3e4: res = print_ds_constructor_update_service_notification (DS, T); break; + case 0xee3b272a: res = print_ds_constructor_update_privacy (DS, T); break; + case 0x12b9417b: res = print_ds_constructor_update_user_phone (DS, T); break; + case 0x9961fd5c: res = print_ds_constructor_update_read_history_inbox (DS, T); break; + case 0x2f2f21bf: res = print_ds_constructor_update_read_history_outbox (DS, T); break; + case 0x2cc36971: res = print_ds_constructor_update_web_page (DS, T); break; + case 0x68c13933: res = print_ds_constructor_update_read_messages_contents (DS, T); break; + case 0x03114739: res = print_ds_constructor_update_msg_update (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_update (struct tl_ds_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1f2b0afd: res = print_ds_constructor_update_new_message (DS, T); break; + case 0x4e90bfd6: res = print_ds_constructor_update_message_i_d (DS, T); break; + case 0xa20db0e5: res = print_ds_constructor_update_delete_messages (DS, T); break; + case 0x5c486927: res = print_ds_constructor_update_user_typing (DS, T); break; + case 0x9a65ea1f: res = print_ds_constructor_update_chat_user_typing (DS, T); break; + case 0x07761198: res = print_ds_constructor_update_chat_participants (DS, T); break; + case 0x1bfbd823: res = print_ds_constructor_update_user_status (DS, T); break; + case 0xa7332b73: res = print_ds_constructor_update_user_name (DS, T); break; + case 0x95313b0c: res = print_ds_constructor_update_user_photo (DS, T); break; + case 0x2575bbb9: res = print_ds_constructor_update_contact_registered (DS, T); break; + case 0x9d2e67c5: res = print_ds_constructor_update_contact_link (DS, T); break; + case 0x8f06529a: res = print_ds_constructor_update_new_authorization (DS, T); break; + case 0x5a68e3f7: res = print_ds_constructor_update_new_geo_chat_message (DS, T); break; + case 0x12bcbd9a: res = print_ds_constructor_update_new_encrypted_message (DS, T); break; + case 0x1710f156: res = print_ds_constructor_update_encrypted_chat_typing (DS, T); break; + case 0xb4a2e88d: res = print_ds_constructor_update_encryption (DS, T); break; + case 0x38fe25b7: res = print_ds_constructor_update_encrypted_messages_read (DS, T); break; + case 0x3a0eeb22: res = print_ds_constructor_update_chat_participant_add (DS, T); break; + case 0x6e5f8c22: res = print_ds_constructor_update_chat_participant_delete (DS, T); break; + case 0x8e5e9873: res = print_ds_constructor_update_dc_options (DS, T); break; + case 0x80ece81a: res = print_ds_constructor_update_user_blocked (DS, T); break; + case 0xbec268ef: res = print_ds_constructor_update_notify_settings (DS, T); break; + case 0x382dd3e4: res = print_ds_constructor_update_service_notification (DS, T); break; + case 0xee3b272a: res = print_ds_constructor_update_privacy (DS, T); break; + case 0x12b9417b: res = print_ds_constructor_update_user_phone (DS, T); break; + case 0x9961fd5c: res = print_ds_constructor_update_read_history_inbox (DS, T); break; + case 0x2f2f21bf: res = print_ds_constructor_update_read_history_outbox (DS, T); break; + case 0x2cc36971: res = print_ds_constructor_update_web_page (DS, T); break; + case 0x68c13933: res = print_ds_constructor_update_read_messages_contents (DS, T); break; + case 0x03114739: res = print_ds_constructor_update_msg_update (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_updates (struct tl_ds_updates *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe317af7e: res = print_ds_constructor_updates_too_long (DS, T); break; + case 0xed5c2127: res = print_ds_constructor_update_short_message (DS, T); break; + case 0x52238b3c: res = print_ds_constructor_update_short_chat_message (DS, T); break; + case 0x78d4dec1: res = print_ds_constructor_update_short (DS, T); break; + case 0x725b04c3: res = print_ds_constructor_updates_combined (DS, T); break; + case 0x74ae4240: res = print_ds_constructor_updates (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_updates (struct tl_ds_updates *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe317af7e: res = print_ds_constructor_updates_too_long (DS, T); break; + case 0xed5c2127: res = print_ds_constructor_update_short_message (DS, T); break; + case 0x52238b3c: res = print_ds_constructor_update_short_chat_message (DS, T); break; + case 0x78d4dec1: res = print_ds_constructor_update_short (DS, T); break; + case 0x725b04c3: res = print_ds_constructor_updates_combined (DS, T); break; + case 0x74ae4240: res = print_ds_constructor_updates (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_user (struct tl_ds_user *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x200250ba: res = print_ds_constructor_user_empty (DS, T); break; + case 0x22e49072: res = print_ds_constructor_user (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_user (struct tl_ds_user *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x200250ba: res = print_ds_constructor_user_empty (DS, T); break; + case 0x22e49072: res = print_ds_constructor_user (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_user_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_user_full (struct tl_ds_user_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_user_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x4f11bae1: res = print_ds_constructor_user_profile_photo_empty (DS, T); break; + case 0xd559d8c8: res = print_ds_constructor_user_profile_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x4f11bae1: res = print_ds_constructor_user_profile_photo_empty (DS, T); break; + case 0xd559d8c8: res = print_ds_constructor_user_profile_photo (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_user_status (struct tl_ds_user_status *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x09d05049: res = print_ds_constructor_user_status_empty (DS, T); break; + case 0xedb93949: res = print_ds_constructor_user_status_online (DS, T); break; + case 0x008c703f: res = print_ds_constructor_user_status_offline (DS, T); break; + case 0xe26f42f1: res = print_ds_constructor_user_status_recently (DS, T); break; + case 0x07bf09fc: res = print_ds_constructor_user_status_last_week (DS, T); break; + case 0x77ebc742: res = print_ds_constructor_user_status_last_month (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_user_status (struct tl_ds_user_status *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x09d05049: res = print_ds_constructor_user_status_empty (DS, T); break; + case 0xedb93949: res = print_ds_constructor_user_status_online (DS, T); break; + case 0x008c703f: res = print_ds_constructor_user_status_offline (DS, T); break; + case 0xe26f42f1: res = print_ds_constructor_user_status_recently (DS, T); break; + case 0x07bf09fc: res = print_ds_constructor_user_status_last_week (DS, T); break; + case 0x77ebc742: res = print_ds_constructor_user_status_last_month (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_vector (struct tl_ds_vector *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_vector (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_vector (struct tl_ds_vector *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_vector (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_video (struct tl_ds_video *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc10658a8: res = print_ds_constructor_video_empty (DS, T); break; + case 0xee9f4a4d: res = print_ds_constructor_video (DS, T); break; + case 0x388fa391: res = print_ds_constructor_video_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_video (struct tl_ds_video *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc10658a8: res = print_ds_constructor_video_empty (DS, T); break; + case 0xee9f4a4d: res = print_ds_constructor_video (DS, T); break; + case 0x388fa391: res = print_ds_constructor_video_l27 (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xccb03657: res = print_ds_constructor_wall_paper (DS, T); break; + case 0x63117f24: res = print_ds_constructor_wall_paper_solid (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xccb03657: res = print_ds_constructor_wall_paper (DS, T); break; + case 0x63117f24: res = print_ds_constructor_wall_paper_solid (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xeb1477e8: res = print_ds_constructor_web_page_empty (DS, T); break; + case 0xc586da1c: res = print_ds_constructor_web_page_pending (DS, T); break; + case 0xa31ea0b5: res = print_ds_constructor_web_page (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_web_page (struct tl_ds_web_page *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xeb1477e8: res = print_ds_constructor_web_page_empty (DS, T); break; + case 0xc586da1c: res = print_ds_constructor_web_page_pending (DS, T); break; + case 0xa31ea0b5: res = print_ds_constructor_web_page (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_authorizations (DS, T); + return res; +} +int print_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_authorizations (DS, T); + return res; +} +int print_ds_type_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x96dabc18: res = print_ds_constructor_account_no_password (DS, T); break; + case 0x7c18141c: res = print_ds_constructor_account_password (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_account_password (struct tl_ds_account_password *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x96dabc18: res = print_ds_constructor_account_no_password (DS, T); break; + case 0x7c18141c: res = print_ds_constructor_account_password (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_password_input_settings (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_password_input_settings (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_password_settings (DS, T); + return res; +} +int print_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_account_password_settings (DS, T); + return res; +} +int print_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_privacy_rules (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_privacy_rules (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_sent_change_phone_code (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_account_sent_change_phone_code (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_authorization (DS, T); + return res; +} +int print_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_authorization (DS, T); + return res; +} +int print_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_checked_phone (DS, T); + return res; +} +int print_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_checked_phone (DS, T); + return res; +} +int print_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_auth_exported_authorization (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_auth_exported_authorization (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_password_recovery (DS, T); + return res; +} +int print_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_auth_password_recovery (DS, T); + return res; +} +int print_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xefed51d9: res = print_ds_constructor_auth_sent_code (DS, T); break; + case 0xe325edcf: res = print_ds_constructor_auth_sent_app_code (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xefed51d9: res = print_ds_constructor_auth_sent_code (DS, T); break; + case 0xe325edcf: res = print_ds_constructor_auth_sent_app_code (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_binlog_encr_key (DS, T); + return res; +} +int print_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_binlog_encr_key (DS, T); + return res; +} +int print_ds_type_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3b06de69: res = print_ds_constructor_binlog_start (DS, T); break; + case 0xf96feb32: res = print_ds_constructor_binlog_dc_option (DS, T); break; + case 0x7c0d22d8: res = print_ds_constructor_binlog_dc_option_new (DS, T); break; + case 0x71e8c156: res = print_ds_constructor_binlog_auth_key (DS, T); break; + case 0x9e83dbdc: res = print_ds_constructor_binlog_default_dc (DS, T); break; + case 0x26451bb5: res = print_ds_constructor_binlog_dc_signed (DS, T); break; + case 0x68a870e8: res = print_ds_constructor_binlog_our_id (DS, T); break; + case 0xeaeb7826: res = print_ds_constructor_binlog_set_dh_params (DS, T); break; + case 0x2ca8c939: res = print_ds_constructor_binlog_set_pts (DS, T); break; + case 0xd95738ac: res = print_ds_constructor_binlog_set_qts (DS, T); break; + case 0x1d0f4b52: res = print_ds_constructor_binlog_set_date (DS, T); break; + case 0x6eeb2989: res = print_ds_constructor_binlog_set_seq (DS, T); break; + case 0xee1b38e8: res = print_ds_constructor_binlog_encr_chat_delete (DS, T); break; + case 0x84977251: res = print_ds_constructor_binlog_encr_chat_new (DS, T); break; + case 0x9d49488d: res = print_ds_constructor_binlog_encr_chat_exchange_new (DS, T); break; + case 0xac55d447: res = print_ds_constructor_binlog_user_delete (DS, T); break; + case 0x127cf2f9: res = print_ds_constructor_binlog_user_new (DS, T); break; + case 0x0a10aa92: res = print_ds_constructor_binlog_chat_new (DS, T); break; + case 0x535475ea: res = print_ds_constructor_binlog_chat_add_participant (DS, T); break; + case 0x7dd1a1a2: res = print_ds_constructor_binlog_chat_del_participant (DS, T); break; + case 0x3c873416: res = print_ds_constructor_binlog_set_msg_id (DS, T); break; + case 0x847e77b1: res = print_ds_constructor_binlog_message_delete (DS, T); break; + case 0x427cfcdb: res = print_ds_constructor_binlog_message_new (DS, T); break; + case 0x6cf7cabc: res = print_ds_constructor_binlog_message_encr_new (DS, T); break; + case 0x6dd4d85f: res = print_ds_constructor_binlog_msg_update (DS, T); break; + case 0x83327955: res = print_ds_constructor_binlog_reset_authorization (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x3b06de69: res = print_ds_constructor_binlog_start (DS, T); break; + case 0xf96feb32: res = print_ds_constructor_binlog_dc_option (DS, T); break; + case 0x7c0d22d8: res = print_ds_constructor_binlog_dc_option_new (DS, T); break; + case 0x71e8c156: res = print_ds_constructor_binlog_auth_key (DS, T); break; + case 0x9e83dbdc: res = print_ds_constructor_binlog_default_dc (DS, T); break; + case 0x26451bb5: res = print_ds_constructor_binlog_dc_signed (DS, T); break; + case 0x68a870e8: res = print_ds_constructor_binlog_our_id (DS, T); break; + case 0xeaeb7826: res = print_ds_constructor_binlog_set_dh_params (DS, T); break; + case 0x2ca8c939: res = print_ds_constructor_binlog_set_pts (DS, T); break; + case 0xd95738ac: res = print_ds_constructor_binlog_set_qts (DS, T); break; + case 0x1d0f4b52: res = print_ds_constructor_binlog_set_date (DS, T); break; + case 0x6eeb2989: res = print_ds_constructor_binlog_set_seq (DS, T); break; + case 0xee1b38e8: res = print_ds_constructor_binlog_encr_chat_delete (DS, T); break; + case 0x84977251: res = print_ds_constructor_binlog_encr_chat_new (DS, T); break; + case 0x9d49488d: res = print_ds_constructor_binlog_encr_chat_exchange_new (DS, T); break; + case 0xac55d447: res = print_ds_constructor_binlog_user_delete (DS, T); break; + case 0x127cf2f9: res = print_ds_constructor_binlog_user_new (DS, T); break; + case 0x0a10aa92: res = print_ds_constructor_binlog_chat_new (DS, T); break; + case 0x535475ea: res = print_ds_constructor_binlog_chat_add_participant (DS, T); break; + case 0x7dd1a1a2: res = print_ds_constructor_binlog_chat_del_participant (DS, T); break; + case 0x3c873416: res = print_ds_constructor_binlog_set_msg_id (DS, T); break; + case 0x847e77b1: res = print_ds_constructor_binlog_message_delete (DS, T); break; + case 0x427cfcdb: res = print_ds_constructor_binlog_message_new (DS, T); break; + case 0x6cf7cabc: res = print_ds_constructor_binlog_message_encr_new (DS, T); break; + case 0x6dd4d85f: res = print_ds_constructor_binlog_msg_update (DS, T); break; + case 0x83327955: res = print_ds_constructor_binlog_reset_authorization (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1c138d15: res = print_ds_constructor_contacts_blocked (DS, T); break; + case 0x900802a1: res = print_ds_constructor_contacts_blocked_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x1c138d15: res = print_ds_constructor_contacts_blocked (DS, T); break; + case 0x900802a1: res = print_ds_constructor_contacts_blocked_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb74ba9d2: res = print_ds_constructor_contacts_contacts_not_modified (DS, T); break; + case 0x6f8b8cb2: res = print_ds_constructor_contacts_contacts (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xb74ba9d2: res = print_ds_constructor_contacts_contacts_not_modified (DS, T); break; + case 0x6f8b8cb2: res = print_ds_constructor_contacts_contacts (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_found (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_found (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_imported_contacts (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_imported_contacts (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_link (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_link (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_suggested (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_contacts_suggested (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_geochats_located (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_geochats_located (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xd1526db1: res = print_ds_constructor_geochats_messages (DS, T); break; + case 0xbc5863e8: res = print_ds_constructor_geochats_messages_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xd1526db1: res = print_ds_constructor_geochats_messages (DS, T); break; + case 0xbc5863e8: res = print_ds_constructor_geochats_messages_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_geochats_stated_message (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_geochats_stated_message (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8987f311: res = print_ds_constructor_help_app_update (DS, T); break; + case 0xc45a6536: res = print_ds_constructor_help_no_app_update (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8987f311: res = print_ds_constructor_help_app_update (DS, T); break; + case 0xc45a6536: res = print_ds_constructor_help_no_app_update (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_help_invite_text (DS, T); + return res; +} +int print_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_help_invite_text (DS, T); + return res; +} +int print_ds_type_help_support (struct tl_ds_help_support *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_help_support (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_help_support (struct tl_ds_help_support *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_help_support (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_affected_history (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_affected_history (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_affected_messages (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_affected_messages (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe86602c3: res = print_ds_constructor_messages_all_stickers_not_modified (DS, T); break; + case 0x5ce352ec: res = print_ds_constructor_messages_all_stickers (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xe86602c3: res = print_ds_constructor_messages_all_stickers_not_modified (DS, T); break; + case 0x5ce352ec: res = print_ds_constructor_messages_all_stickers (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_chat_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_chat_full (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_messages_chats (DS, T); + return res; +} +int print_ds_type_bare_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T) { + int res; + res = print_ds_constructor_messages_chats (DS, T); + return res; +} +int print_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc0e24635: res = print_ds_constructor_messages_dh_config_not_modified (DS, T); break; + case 0x2c221edd: res = print_ds_constructor_messages_dh_config (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xc0e24635: res = print_ds_constructor_messages_dh_config_not_modified (DS, T); break; + case 0x2c221edd: res = print_ds_constructor_messages_dh_config (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x15ba6c40: res = print_ds_constructor_messages_dialogs (DS, T); break; + case 0x71e094f3: res = print_ds_constructor_messages_dialogs_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x15ba6c40: res = print_ds_constructor_messages_dialogs (DS, T); break; + case 0x71e094f3: res = print_ds_constructor_messages_dialogs_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_message_empty (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_message_empty (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8c718e87: res = print_ds_constructor_messages_messages (DS, T); break; + case 0x0b446ae3: res = print_ds_constructor_messages_messages_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8c718e87: res = print_ds_constructor_messages_messages (DS, T); break; + case 0x0b446ae3: res = print_ds_constructor_messages_messages_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x560f8935: res = print_ds_constructor_messages_sent_encrypted_message (DS, T); break; + case 0x9493ff32: res = print_ds_constructor_messages_sent_encrypted_file (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x560f8935: res = print_ds_constructor_messages_sent_encrypted_message (DS, T); break; + case 0x9493ff32: res = print_ds_constructor_messages_sent_encrypted_file (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x4c3d47f3: res = print_ds_constructor_messages_sent_message (DS, T); break; + case 0x35a1a663: res = print_ds_constructor_messages_sent_message_link (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x4c3d47f3: res = print_ds_constructor_messages_sent_message (DS, T); break; + case 0x35a1a663: res = print_ds_constructor_messages_sent_message_link (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_sticker_set (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_messages_sticker_set (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf1749a22: res = print_ds_constructor_messages_stickers_not_modified (DS, T); break; + case 0x8a8ecd32: res = print_ds_constructor_messages_stickers (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xf1749a22: res = print_ds_constructor_messages_stickers_not_modified (DS, T); break; + case 0x8a8ecd32: res = print_ds_constructor_messages_stickers (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_photos_photo (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_photos_photo (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8dca6aa5: res = print_ds_constructor_photos_photos (DS, T); break; + case 0x15051f54: res = print_ds_constructor_photos_photos_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x8dca6aa5: res = print_ds_constructor_photos_photos (DS, T); break; + case 0x15051f54: res = print_ds_constructor_photos_photos_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xaa963b05: res = print_ds_constructor_storage_file_unknown (DS, T); break; + case 0x007efe0e: res = print_ds_constructor_storage_file_jpeg (DS, T); break; + case 0xcae1aadf: res = print_ds_constructor_storage_file_gif (DS, T); break; + case 0x0a4f63c0: res = print_ds_constructor_storage_file_png (DS, T); break; + case 0xae1e508d: res = print_ds_constructor_storage_file_pdf (DS, T); break; + case 0x528a0677: res = print_ds_constructor_storage_file_mp3 (DS, T); break; + case 0x4b09ebbc: res = print_ds_constructor_storage_file_mov (DS, T); break; + case 0x40bc6f52: res = print_ds_constructor_storage_file_partial (DS, T); break; + case 0xb3cea0e4: res = print_ds_constructor_storage_file_mp4 (DS, T); break; + case 0x1081464c: res = print_ds_constructor_storage_file_webp (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0xaa963b05: res = print_ds_constructor_storage_file_unknown (DS, T); break; + case 0x007efe0e: res = print_ds_constructor_storage_file_jpeg (DS, T); break; + case 0xcae1aadf: res = print_ds_constructor_storage_file_gif (DS, T); break; + case 0x0a4f63c0: res = print_ds_constructor_storage_file_png (DS, T); break; + case 0xae1e508d: res = print_ds_constructor_storage_file_pdf (DS, T); break; + case 0x528a0677: res = print_ds_constructor_storage_file_mp3 (DS, T); break; + case 0x4b09ebbc: res = print_ds_constructor_storage_file_mov (DS, T); break; + case 0x40bc6f52: res = print_ds_constructor_storage_file_partial (DS, T); break; + case 0xb3cea0e4: res = print_ds_constructor_storage_file_mp4 (DS, T); break; + case 0x1081464c: res = print_ds_constructor_storage_file_webp (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5d75a138: res = print_ds_constructor_updates_difference_empty (DS, T); break; + case 0x00f49ca0: res = print_ds_constructor_updates_difference (DS, T); break; + case 0xa8fb1981: res = print_ds_constructor_updates_difference_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + switch (DS->magic) { + case 0x5d75a138: res = print_ds_constructor_updates_difference_empty (DS, T); break; + case 0x00f49ca0: res = print_ds_constructor_updates_difference (DS, T); break; + case 0xa8fb1981: res = print_ds_constructor_updates_difference_slice (DS, T); break; + default: return -1; + } + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_updates_state (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_updates_state (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_upload_file (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_bare_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T) { + int res; + if (multiline_output >= 2) { multiline_offset += multiline_offset_size; } + eprintf (" ("); + res = print_ds_constructor_upload_file (DS, T); + if (res >= 0) { + if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } + eprintf (" )"); + } + return res; +} +int print_ds_type_any (void *DS, struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return print_ds_type_account_days_t_t_l (DS, T); + case 0x472f5020: return print_ds_type_bare_account_days_t_t_l (DS, T); + case 0x9fc5ec4e: return print_ds_type_audio (DS, T); + case 0x603a13b1: return print_ds_type_bare_audio (DS, T); + case 0x7bf2e6f6: return print_ds_type_authorization (DS, T); + case 0x840d1909: return print_ds_type_bare_authorization (DS, T); + case 0x250be282: return print_ds_type_bool (DS, T); + case 0xdaf41d7d: return print_ds_type_bare_bool (DS, T); + case 0x75e7ea6c: return print_ds_type_bot_command (DS, T); + case 0x8a181593: return print_ds_type_bare_bot_command (DS, T); + case 0xb2e16f93: return print_ds_type_bot_info (DS, T); + case 0x4d1e906c: return print_ds_type_bare_bot_info (DS, T); + case 0x0ee1379f: return print_ds_type_bytes (DS, T); + case 0xf11ec860: return print_ds_type_bare_bytes (DS, T); + case 0x7bd865dc: return print_ds_type_chat (DS, T); + case 0x84279a23: return print_ds_type_bare_chat (DS, T); + case 0x2e02a614: return print_ds_type_chat_full (DS, T); + case 0xd1fd59eb: return print_ds_type_bare_chat_full (DS, T); + case 0x94f910b1: return print_ds_type_chat_invite (DS, T); + case 0x6b06ef4e: return print_ds_type_bare_chat_invite (DS, T); + case 0x3631cf4c: return print_ds_type_chat_located (DS, T); + case 0xc9ce30b3: return print_ds_type_bare_chat_located (DS, T); + case 0xc8d7493e: return print_ds_type_chat_participant (DS, T); + case 0x3728b6c1: return print_ds_type_bare_chat_participant (DS, T); + case 0x77930f9f: return print_ds_type_chat_participants (DS, T); + case 0x886cf060: return print_ds_type_bare_chat_participants (DS, T); + case 0x56922676: return print_ds_type_chat_photo (DS, T); + case 0xa96dd989: return print_ds_type_bare_chat_photo (DS, T); + case 0x6643b654: return print_ds_type_client_d_h_inner_data (DS, T); + case 0x99bc49ab: return print_ds_type_bare_client_d_h_inner_data (DS, T); + case 0x4e32b894: return print_ds_type_config (DS, T); + case 0xb1cd476b: return print_ds_type_bare_config (DS, T); + case 0xf911c994: return print_ds_type_contact (DS, T); + case 0x06ee366b: return print_ds_type_bare_contact (DS, T); + case 0x561bc879: return print_ds_type_contact_blocked (DS, T); + case 0xa9e43786: return print_ds_type_bare_contact_blocked (DS, T); + case 0xea879f95: return print_ds_type_contact_found (DS, T); + case 0x1578606a: return print_ds_type_bare_contact_found (DS, T); + case 0x522fbc63: return print_ds_type_contact_link (DS, T); + case 0xadd0439c: return print_ds_type_bare_contact_link (DS, T); + case 0xd3680c61: return print_ds_type_contact_status (DS, T); + case 0x2c97f39e: return print_ds_type_bare_contact_status (DS, T); + case 0x3de191a1: return print_ds_type_contact_suggested (DS, T); + case 0xc21e6e5e: return print_ds_type_bare_contact_suggested (DS, T); + case 0x2b1a62f0: return print_ds_type_dc_option (DS, T); + case 0xd4e59d0f: return print_ds_type_bare_dc_option (DS, T); + case 0x535b7918: return print_ds_type_decrypted_message (DS, T); + case 0xaca486e7: return print_ds_type_bare_decrypted_message (DS, T); + case 0x4e0eefde: return print_ds_type_decrypted_message_action (DS, T); + case 0xb1f11021: return print_ds_type_bare_decrypted_message_action (DS, T); + case 0x1be31789: return print_ds_type_decrypted_message_layer (DS, T); + case 0xe41ce876: return print_ds_type_bare_decrypted_message_layer (DS, T); + case 0x34e0d674: return print_ds_type_decrypted_message_media (DS, T); + case 0xcb1f298b: return print_ds_type_bare_decrypted_message_media (DS, T); + case 0xc1dd804a: return print_ds_type_dialog (DS, T); + case 0x3e227fb5: return print_ds_type_bare_dialog (DS, T); + case 0xae636f24: return print_ds_type_disabled_feature (DS, T); + case 0x519c90db: return print_ds_type_bare_disabled_feature (DS, T); + case 0x51a73418: return print_ds_type_document (DS, T); + case 0xae58cbe7: return print_ds_type_bare_document (DS, T); + case 0x97c637a3: return print_ds_type_document_attribute (DS, T); + case 0x6839c85c: return print_ds_type_bare_document_attribute (DS, T); + case 0x2210c154: return print_ds_type_double (DS, T); + case 0xddef3eab: return print_ds_type_bare_double (DS, T); + case 0xb1718213: return print_ds_type_encrypted_chat (DS, T); + case 0x4e8e7dec: return print_ds_type_bare_encrypted_chat (DS, T); + case 0x886fd032: return print_ds_type_encrypted_file (DS, T); + case 0x77902fcd: return print_ds_type_bare_encrypted_file (DS, T); + case 0xce6b8a1e: return print_ds_type_encrypted_message (DS, T); + case 0x319475e1: return print_ds_type_bare_encrypted_message (DS, T); + case 0xc4b9f9bb: return print_ds_type_error (DS, T); + case 0x3b460644: return print_ds_type_bare_error (DS, T); + case 0x95f132d5: return print_ds_type_exported_chat_invite (DS, T); + case 0x6a0ecd2a: return print_ds_type_bare_exported_chat_invite (DS, T); + case 0x2f8ffb30: return print_ds_type_file_location (DS, T); + case 0xd07004cf: return print_ds_type_bare_file_location (DS, T); + case 0xf67b4034: return print_ds_type_geo_chat_message (DS, T); + case 0x0984bfcb: return print_ds_type_bare_geo_chat_message (DS, T); + case 0x315e0a53: return print_ds_type_geo_point (DS, T); + case 0xcea1f5ac: return print_ds_type_bare_geo_point (DS, T); + case 0xd0028438: return print_ds_type_imported_contact (DS, T); + case 0x2ffd7bc7: return print_ds_type_bare_imported_contact (DS, T); + case 0x770656a8: return print_ds_type_input_app_event (DS, T); + case 0x88f9a957: return print_ds_type_bare_input_app_event (DS, T); + case 0xae8e9c7b: return print_ds_type_input_audio (DS, T); + case 0x51716384: return print_ds_type_bare_input_audio (DS, T); + case 0x3a60776d: return print_ds_type_input_chat_photo (DS, T); + case 0xc59f8892: return print_ds_type_bare_input_chat_photo (DS, T); + case 0xf392b7f4: return print_ds_type_input_contact (DS, T); + case 0x0c6d480b: return print_ds_type_bare_input_contact (DS, T); + case 0x6a8963fc: return print_ds_type_input_document (DS, T); + case 0x95769c03: return print_ds_type_bare_input_document (DS, T); + case 0xf141b5e1: return print_ds_type_input_encrypted_chat (DS, T); + case 0x0ebe4a1e: return print_ds_type_bare_input_encrypted_chat (DS, T); + case 0x0b5c064f: return print_ds_type_input_encrypted_file (DS, T); + case 0xf4a3f9b0: return print_ds_type_bare_input_encrypted_file (DS, T); + case 0x0f60f9ca: return print_ds_type_input_file (DS, T); + case 0xf09f0635: return print_ds_type_bare_input_file (DS, T); + case 0xe6daa38b: return print_ds_type_input_file_location (DS, T); + case 0x19255c74: return print_ds_type_bare_input_file_location (DS, T); + case 0x74d456fa: return print_ds_type_input_geo_chat (DS, T); + case 0x8b2ba905: return print_ds_type_bare_input_geo_chat (DS, T); + case 0x17768f1f: return print_ds_type_input_geo_point (DS, T); + case 0xe88970e0: return print_ds_type_bare_input_geo_point (DS, T); + case 0xb32c91dd: return print_ds_type_input_media (DS, T); + case 0x4cd36e22: return print_ds_type_bare_input_media (DS, T); + case 0x02b6911b: return print_ds_type_input_notify_peer (DS, T); + case 0xfd496ee4: return print_ds_type_bare_input_notify_peer (DS, T); + case 0x9e67268d: return print_ds_type_input_peer (DS, T); + case 0x6198d972: return print_ds_type_bare_input_peer (DS, T); + case 0x185a48ac: return print_ds_type_input_peer_notify_events (DS, T); + case 0xe7a5b753: return print_ds_type_bare_input_peer_notify_events (DS, T); + case 0x46a2ce98: return print_ds_type_input_peer_notify_settings (DS, T); + case 0xb95d3167: return print_ds_type_bare_input_peer_notify_settings (DS, T); + case 0xe74279c9: return print_ds_type_input_photo (DS, T); + case 0x18bd8636: return print_ds_type_bare_input_photo (DS, T); + case 0x7477e321: return print_ds_type_input_photo_crop (DS, T); + case 0x8b881cde: return print_ds_type_bare_input_photo_crop (DS, T); + case 0x4f96cb18: return print_ds_type_input_privacy_key (DS, T); + case 0xb06934e7: return print_ds_type_bare_input_privacy_key (DS, T); + case 0x4b815163: return print_ds_type_input_privacy_rule (DS, T); + case 0xb47eae9c: return print_ds_type_bare_input_privacy_rule (DS, T); + case 0xe44d415c: return print_ds_type_input_sticker_set (DS, T); + case 0x1bb2bea3: return print_ds_type_bare_input_sticker_set (DS, T); + case 0xadfe0c6a: return print_ds_type_input_user (DS, T); + case 0x5201f395: return print_ds_type_bare_input_user (DS, T); + case 0xbb5f7a27: return print_ds_type_input_video (DS, T); + case 0x44a085d8: return print_ds_type_bare_input_video (DS, T); + case 0xa8509bda: return print_ds_type_int (DS, T); + case 0x57af6425: return print_ds_type_bare_int (DS, T); + case 0x7d36c439: return print_ds_type_int128 (DS, T); + case 0x82c93bc6: return print_ds_type_bare_int128 (DS, T); + case 0xf2c798b3: return print_ds_type_int256 (DS, T); + case 0x0d38674c: return print_ds_type_bare_int256 (DS, T); + case 0xa2fa4880: return print_ds_type_keyboard_button (DS, T); + case 0x5d05b77f: return print_ds_type_bare_keyboard_button (DS, T); + case 0x77608b83: return print_ds_type_keyboard_button_row (DS, T); + case 0x889f747c: return print_ds_type_bare_keyboard_button_row (DS, T); + case 0x22076cba: return print_ds_type_long (DS, T); + case 0xddf89345: return print_ds_type_bare_long (DS, T); + case 0x5d652a7f: return print_ds_type_message (DS, T); + case 0xa29ad580: return print_ds_type_bare_message (DS, T); + case 0x383415fa: return print_ds_type_message_action (DS, T); + case 0xc7cbea05: return print_ds_type_bare_message_action (DS, T); + case 0x95f2471a: return print_ds_type_message_media (DS, T); + case 0x6a0db8e5: return print_ds_type_bare_message_media (DS, T); + case 0x80895ae0: return print_ds_type_messages_filter (DS, T); + case 0x7f76a51f: return print_ds_type_bare_messages_filter (DS, T); + case 0x8e1a1775: return print_ds_type_nearest_dc (DS, T); + case 0x71e5e88a: return print_ds_type_bare_nearest_dc (DS, T); + case 0x9fcb8237: return print_ds_type_notify_peer (DS, T); + case 0x60347dc8: return print_ds_type_bare_notify_peer (DS, T); + case 0x56730bcc: return print_ds_type_null (DS, T); + case 0xa98cf433: return print_ds_type_bare_null (DS, T); + case 0xbfa3de38: return print_ds_type_p_q_inner_data (DS, T); + case 0x405c21c7: return print_ds_type_bare_p_q_inner_data (DS, T); + case 0x276159d6: return print_ds_type_peer (DS, T); + case 0xd89ea629: return print_ds_type_bare_peer (DS, T); + case 0xc0c8d13b: return print_ds_type_peer_notify_events (DS, T); + case 0x3f372ec4: return print_ds_type_bare_peer_notify_events (DS, T); + case 0xfdf894fc: return print_ds_type_peer_notify_settings (DS, T); + case 0x02076b03: return print_ds_type_bare_peer_notify_settings (DS, T); + case 0xc207550a: return print_ds_type_photo (DS, T); + case 0x3df8aaf5: return print_ds_type_bare_photo (DS, T); + case 0x900f60dd: return print_ds_type_photo_size (DS, T); + case 0x6ff09f22: return print_ds_type_bare_photo_size (DS, T); + case 0xbc2eab30: return print_ds_type_privacy_key (DS, T); + case 0x43d154cf: return print_ds_type_bare_privacy_key (DS, T); + case 0xa8638aec: return print_ds_type_privacy_rule (DS, T); + case 0x579c7513: return print_ds_type_bare_privacy_rule (DS, T); + case 0xa384b779: return print_ds_type_received_notify_message (DS, T); + case 0x5c7b4886: return print_ds_type_bare_received_notify_message (DS, T); + case 0x612ca4a9: return print_ds_type_reply_markup (DS, T); + case 0x9ed35b56: return print_ds_type_bare_reply_markup (DS, T); + case 0x05162463: return print_ds_type_res_p_q (DS, T); + case 0xfae9db9c: return print_ds_type_bare_res_p_q (DS, T); + case 0x70541c7e: return print_ds_type_send_message_action (DS, T); + case 0x8fabe381: return print_ds_type_bare_send_message_action (DS, T); + case 0xa9230301: return print_ds_type_server_d_h_params (DS, T); + case 0x56dcfcfe: return print_ds_type_bare_server_d_h_params (DS, T); + case 0xb5890dba: return print_ds_type_server_d_h_inner_data (DS, T); + case 0x4a76f245: return print_ds_type_bare_server_d_h_inner_data (DS, T); + case 0xdb8a468f: return print_ds_type_set_client_d_h_params_answer (DS, T); + case 0x2475b970: return print_ds_type_bare_set_client_d_h_params_answer (DS, T); + case 0x12b299d4: return print_ds_type_sticker_pack (DS, T); + case 0xed4d662b: return print_ds_type_bare_sticker_pack (DS, T); + case 0xa7a43b17: return print_ds_type_sticker_set (DS, T); + case 0x585bc4e8: return print_ds_type_bare_sticker_set (DS, T); + case 0xb5286e24: return print_ds_type_string (DS, T); + case 0x4ad791db: return print_ds_type_bare_string (DS, T); + case 0x2e02b27e: return print_ds_type_update (DS, T); + case 0xd1fd4d81: return print_ds_type_bare_update (DS, T); + case 0x22499d27: return print_ds_type_updates (DS, T); + case 0xddb662d8: return print_ds_type_bare_updates (DS, T); + case 0x02e6c0c8: return print_ds_type_user (DS, T); + case 0xfd193f37: return print_ds_type_bare_user (DS, T); + case 0x5a89ac5b: return print_ds_type_user_full (DS, T); + case 0xa57653a4: return print_ds_type_bare_user_full (DS, T); + case 0x9a486229: return print_ds_type_user_profile_photo (DS, T); + case 0x65b79dd6: return print_ds_type_bare_user_profile_photo (DS, T); + case 0x76de9570: return print_ds_type_user_status (DS, T); + case 0x89216a8f: return print_ds_type_bare_user_status (DS, T); + case 0x1cb5c415: return print_ds_type_vector (DS, T); + case 0xe34a3bea: return print_ds_type_bare_vector (DS, T); + case 0x1716b174: return print_ds_type_video (DS, T); + case 0xe8e94e8b: return print_ds_type_bare_video (DS, T); + case 0xafa14973: return print_ds_type_wall_paper (DS, T); + case 0x505eb68c: return print_ds_type_bare_wall_paper (DS, T); + case 0x8d8c0d41: return print_ds_type_web_page (DS, T); + case 0x7273f2be: return print_ds_type_bare_web_page (DS, T); + case 0x1250abde: return print_ds_type_account_authorizations (DS, T); + case 0xedaf5421: return print_ds_type_bare_account_authorizations (DS, T); + case 0xeac2a804: return print_ds_type_account_password (DS, T); + case 0x153d57fb: return print_ds_type_bare_account_password (DS, T); + case 0xbcfc532c: return print_ds_type_account_password_input_settings (DS, T); + case 0x4303acd3: return print_ds_type_bare_account_password_input_settings (DS, T); + case 0xb7b72ab3: return print_ds_type_account_password_settings (DS, T); + case 0x4848d54c: return print_ds_type_bare_account_password_settings (DS, T); + case 0x554abb6f: return print_ds_type_account_privacy_rules (DS, T); + case 0xaab54490: return print_ds_type_bare_account_privacy_rules (DS, T); + case 0xa4f58c4c: return print_ds_type_account_sent_change_phone_code (DS, T); + case 0x5b0a73b3: return print_ds_type_bare_account_sent_change_phone_code (DS, T); + case 0xff036af1: return print_ds_type_auth_authorization (DS, T); + case 0x00fc950e: return print_ds_type_bare_auth_authorization (DS, T); + case 0x811ea28e: return print_ds_type_auth_checked_phone (DS, T); + case 0x7ee15d71: return print_ds_type_bare_auth_checked_phone (DS, T); + case 0xdf969c2d: return print_ds_type_auth_exported_authorization (DS, T); + case 0x206963d2: return print_ds_type_bare_auth_exported_authorization (DS, T); + case 0x137948a5: return print_ds_type_auth_password_recovery (DS, T); + case 0xec86b75a: return print_ds_type_bare_auth_password_recovery (DS, T); + case 0x0cc8bc16: return print_ds_type_auth_sent_code (DS, T); + case 0xf33743e9: return print_ds_type_bare_auth_sent_code (DS, T); + case 0x0377168f: return print_ds_type_binlog_encr_key (DS, T); + case 0xfc88e970: return print_ds_type_bare_binlog_encr_key (DS, T); + case 0x66ff03a6: return print_ds_type_binlog_update (DS, T); + case 0x9900fc59: return print_ds_type_bare_binlog_update (DS, T); + case 0x8c1b8fb4: return print_ds_type_contacts_blocked (DS, T); + case 0x73e4704b: return print_ds_type_bare_contacts_blocked (DS, T); + case 0xd8c02560: return print_ds_type_contacts_contacts (DS, T); + case 0x273fda9f: return print_ds_type_bare_contacts_contacts (DS, T); + case 0x0566000e: return print_ds_type_contacts_found (DS, T); + case 0xfa99fff1: return print_ds_type_bare_contacts_found (DS, T); + case 0xad524315: return print_ds_type_contacts_imported_contacts (DS, T); + case 0x52adbcea: return print_ds_type_bare_contacts_imported_contacts (DS, T); + case 0x3ace484c: return print_ds_type_contacts_link (DS, T); + case 0xc531b7b3: return print_ds_type_bare_contacts_link (DS, T); + case 0x5649dcc5: return print_ds_type_contacts_suggested (DS, T); + case 0xa9b6233a: return print_ds_type_bare_contacts_suggested (DS, T); + case 0x48feb267: return print_ds_type_geochats_located (DS, T); + case 0xb7014d98: return print_ds_type_bare_geochats_located (DS, T); + case 0x6d0a0e59: return print_ds_type_geochats_messages (DS, T); + case 0x92f5f1a6: return print_ds_type_bare_geochats_messages (DS, T); + case 0x17b1578b: return print_ds_type_geochats_stated_message (DS, T); + case 0xe84ea874: return print_ds_type_bare_geochats_stated_message (DS, T); + case 0x4ddd9627: return print_ds_type_help_app_update (DS, T); + case 0xb22269d8: return print_ds_type_bare_help_app_update (DS, T); + case 0x18cb9f78: return print_ds_type_help_invite_text (DS, T); + case 0xe7346087: return print_ds_type_bare_help_invite_text (DS, T); + case 0x17c6b5f6: return print_ds_type_help_support (DS, T); + case 0xe8394a09: return print_ds_type_bare_help_support (DS, T); + case 0xb45c69d1: return print_ds_type_messages_affected_history (DS, T); + case 0x4ba3962e: return print_ds_type_bare_messages_affected_history (DS, T); + case 0x84d19185: return print_ds_type_messages_affected_messages (DS, T); + case 0x7b2e6e7a: return print_ds_type_bare_messages_affected_messages (DS, T); + case 0xb485502f: return print_ds_type_messages_all_stickers (DS, T); + case 0x4b7aafd0: return print_ds_type_bare_messages_all_stickers (DS, T); + case 0xe5d7d19c: return print_ds_type_messages_chat_full (DS, T); + case 0x1a282e63: return print_ds_type_bare_messages_chat_full (DS, T); + case 0x64ff9fd5: return print_ds_type_messages_chats (DS, T); + case 0x9b00602a: return print_ds_type_bare_messages_chats (DS, T); + case 0xecc058e8: return print_ds_type_messages_dh_config (DS, T); + case 0x133fa717: return print_ds_type_bare_messages_dh_config (DS, T); + case 0x645af8b3: return print_ds_type_messages_dialogs (DS, T); + case 0x9ba5074c: return print_ds_type_bare_messages_dialogs (DS, T); + case 0x3f4e0648: return print_ds_type_messages_message (DS, T); + case 0xc0b1f9b7: return print_ds_type_bare_messages_message (DS, T); + case 0x8735e464: return print_ds_type_messages_messages (DS, T); + case 0x78ca1b9b: return print_ds_type_bare_messages_messages (DS, T); + case 0xc29c7607: return print_ds_type_messages_sent_encrypted_message (DS, T); + case 0x3d6389f8: return print_ds_type_bare_messages_sent_encrypted_message (DS, T); + case 0x799ce190: return print_ds_type_messages_sent_message (DS, T); + case 0x86631e6f: return print_ds_type_bare_messages_sent_message (DS, T); + case 0xb60a24a6: return print_ds_type_messages_sticker_set (DS, T); + case 0x49f5db59: return print_ds_type_bare_messages_sticker_set (DS, T); + case 0x7bfa5710: return print_ds_type_messages_stickers (DS, T); + case 0x8405a8ef: return print_ds_type_bare_messages_stickers (DS, T); + case 0x20212ca8: return print_ds_type_photos_photo (DS, T); + case 0xdfded357: return print_ds_type_bare_photos_photo (DS, T); + case 0x98cf75f1: return print_ds_type_photos_photos (DS, T); + case 0x67308a0e: return print_ds_type_bare_photos_photos (DS, T); + case 0x3e2838a8: return print_ds_type_storage_file_type (DS, T); + case 0xc1d7c757: return print_ds_type_bare_storage_file_type (DS, T); + case 0xf57a2419: return print_ds_type_updates_difference (DS, T); + case 0x0a85dbe6: return print_ds_type_bare_updates_difference (DS, T); + case 0xa56c2a3e: return print_ds_type_updates_state (DS, T); + case 0x5a93d5c1: return print_ds_type_bare_updates_state (DS, T); + case 0x096a18d5: return print_ds_type_upload_file (DS, T); + case 0xf695e72a: return print_ds_type_bare_upload_file (DS, T); + default: return -1; } +} diff --git a/libs/tgl/src/auto/auto-print-ds.h b/libs/tgl/src/auto/auto-print-ds.h new file mode 100644 index 0000000000..2f74cd9f17 --- /dev/null +++ b/libs/tgl/src/auto/auto-print-ds.h @@ -0,0 +1,719 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-types.h" +#else +#include "auto.h" +#include "auto-types.h" +#endif +#include +#include +struct tgl_state; +char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T); +int print_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T); +int print_ds_constructor_audio_empty (struct tl_ds_audio *DS, struct paramed_type *T); +int print_ds_constructor_audio (struct tl_ds_audio *DS, struct paramed_type *T); +int print_ds_constructor_authorization (struct tl_ds_authorization *DS, struct paramed_type *T); +int print_ds_constructor_bool_false (struct tl_ds_bool *DS, struct paramed_type *T); +int print_ds_constructor_bool_true (struct tl_ds_bool *DS, struct paramed_type *T); +int print_ds_constructor_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T); +int print_ds_constructor_bot_command_old (struct tl_ds_bot_command *DS, struct paramed_type *T); +int print_ds_constructor_bot_info_empty (struct tl_ds_bot_info *DS, struct paramed_type *T); +int print_ds_constructor_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T); +int print_ds_constructor_bytes (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_constructor_chat_empty (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_constructor_chat (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_constructor_chat_forbidden (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_constructor_geo_chat (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_constructor_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T); +int print_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *DS, struct paramed_type *T); +int print_ds_constructor_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T); +int print_ds_constructor_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T); +int print_ds_constructor_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T); +int print_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *DS, struct paramed_type *T); +int print_ds_constructor_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T); +int print_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *DS, struct paramed_type *T); +int print_ds_constructor_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T); +int print_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_constructor_config (struct tl_ds_config *DS, struct paramed_type *T); +int print_ds_constructor_contact (struct tl_ds_contact *DS, struct paramed_type *T); +int print_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T); +int print_ds_constructor_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T); +int print_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_constructor_contact_link_none (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_constructor_contact_link_contact (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_constructor_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T); +int print_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T); +int print_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *DS, struct paramed_type *T); +int print_ds_constructor_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_constructor_dialog (struct tl_ds_dialog *DS, struct paramed_type *T); +int print_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T); +int print_ds_constructor_document_empty (struct tl_ds_document *DS, struct paramed_type *T); +int print_ds_constructor_document (struct tl_ds_document *DS, struct paramed_type *T); +int print_ds_constructor_document_l19 (struct tl_ds_document *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_constructor_double (double *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_error (struct tl_ds_error *DS, struct paramed_type *T); +int print_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T); +int print_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T); +int print_ds_constructor_file_location_unavailable (struct tl_ds_file_location *DS, struct paramed_type *T); +int print_ds_constructor_file_location (struct tl_ds_file_location *DS, struct paramed_type *T); +int print_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *DS, struct paramed_type *T); +int print_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T); +int print_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *DS, struct paramed_type *T); +int print_ds_constructor_geo_point_empty (struct tl_ds_geo_point *DS, struct paramed_type *T); +int print_ds_constructor_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T); +int print_ds_constructor_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T); +int print_ds_constructor_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T); +int print_ds_constructor_input_audio_empty (struct tl_ds_input_audio *DS, struct paramed_type *T); +int print_ds_constructor_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T); +int print_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *DS, struct paramed_type *T); +int print_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T); +int print_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T); +int print_ds_constructor_input_phone_contact (struct tl_ds_input_contact *DS, struct paramed_type *T); +int print_ds_constructor_input_document_empty (struct tl_ds_input_document *DS, struct paramed_type *T); +int print_ds_constructor_input_document (struct tl_ds_input_document *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_constructor_input_file (struct tl_ds_input_file *DS, struct paramed_type *T); +int print_ds_constructor_input_file_big (struct tl_ds_input_file *DS, struct paramed_type *T); +int print_ds_constructor_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T); +int print_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *DS, struct paramed_type *T); +int print_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T); +int print_ds_constructor_input_media_empty (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_photo (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_geo_point (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_contact (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_video (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_audio (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_document (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_media_venue (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_empty (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_self (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_contact (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_chat (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T); +int print_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_constructor_input_photo_empty (struct tl_ds_input_photo *DS, struct paramed_type *T); +int print_ds_constructor_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T); +int print_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *DS, struct paramed_type *T); +int print_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *DS, struct paramed_type *T); +int print_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *DS, struct paramed_type *T); +int print_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *DS, struct paramed_type *T); +int print_ds_constructor_input_user_empty (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_constructor_input_user_self (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_constructor_input_user_contact (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_constructor_input_user_foreign (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_constructor_input_video_empty (struct tl_ds_input_video *DS, struct paramed_type *T); +int print_ds_constructor_input_video (struct tl_ds_input_video *DS, struct paramed_type *T); +int print_ds_constructor_int (int *DS, struct paramed_type *T); +int print_ds_constructor_int128 (struct tl_ds_int128 *DS, struct paramed_type *T); +int print_ds_constructor_int256 (struct tl_ds_int256 *DS, struct paramed_type *T); +int print_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T); +int print_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T); +int print_ds_constructor_long (long long *DS, struct paramed_type *T); +int print_ds_constructor_message_empty (struct tl_ds_message *DS, struct paramed_type *T); +int print_ds_constructor_message (struct tl_ds_message *DS, struct paramed_type *T); +int print_ds_constructor_message_service (struct tl_ds_message *DS, struct paramed_type *T); +int print_ds_constructor_message_action_empty (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_constructor_message_media_empty (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_photo (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_video (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_geo (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_contact (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_unsupported (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_document (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_audio (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_web_page (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_venue (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T); +int print_ds_constructor_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_notify_users (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_notify_chats (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_notify_all (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_constructor_null (struct tl_ds_null *DS, struct paramed_type *T); +int print_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T); +int print_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T); +int print_ds_constructor_peer_user (struct tl_ds_peer *DS, struct paramed_type *T); +int print_ds_constructor_peer_chat (struct tl_ds_peer *DS, struct paramed_type *T); +int print_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *DS, struct paramed_type *T); +int print_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *DS, struct paramed_type *T); +int print_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_constructor_photo_empty (struct tl_ds_photo *DS, struct paramed_type *T); +int print_ds_constructor_photo (struct tl_ds_photo *DS, struct paramed_type *T); +int print_ds_constructor_photo_l27 (struct tl_ds_photo *DS, struct paramed_type *T); +int print_ds_constructor_photo_size_empty (struct tl_ds_photo_size *DS, struct paramed_type *T); +int print_ds_constructor_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T); +int print_ds_constructor_photo_cached_size (struct tl_ds_photo_size *DS, struct paramed_type *T); +int print_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T); +int print_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *DS, struct paramed_type *T); +int print_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *DS, struct paramed_type *T); +int print_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T); +int print_ds_constructor_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T); +int print_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *DS, struct paramed_type *T); +int print_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *DS, struct paramed_type *T); +int print_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T); +int print_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T); +int print_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T); +int print_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T); +int print_ds_constructor_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T); +int print_ds_constructor_string (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_constructor_update_new_message (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_message_i_d (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_delete_messages (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_typing (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_chat_user_typing (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_chat_participants (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_status (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_name (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_photo (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_contact_registered (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_contact_link (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_new_authorization (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_new_encrypted_message (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_encryption (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_chat_participant_add (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_chat_participant_delete (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_dc_options (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_blocked (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_notify_settings (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_service_notification (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_privacy (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_user_phone (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_read_history_inbox (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_read_history_outbox (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_web_page (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_read_messages_contents (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_update_msg_update (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_constructor_updates_too_long (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_update_short_message (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_update_short_chat_message (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_update_short (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_updates_combined (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_updates (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_constructor_user_empty (struct tl_ds_user *DS, struct paramed_type *T); +int print_ds_constructor_user (struct tl_ds_user *DS, struct paramed_type *T); +int print_ds_constructor_user_full (struct tl_ds_user_full *DS, struct paramed_type *T); +int print_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *DS, struct paramed_type *T); +int print_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T); +int print_ds_constructor_user_status_empty (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_user_status_online (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_user_status_offline (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_user_status_recently (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_user_status_last_week (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_user_status_last_month (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_constructor_vector (struct tl_ds_vector *DS, struct paramed_type *T); +int print_ds_constructor_video_empty (struct tl_ds_video *DS, struct paramed_type *T); +int print_ds_constructor_video (struct tl_ds_video *DS, struct paramed_type *T); +int print_ds_constructor_video_l27 (struct tl_ds_video *DS, struct paramed_type *T); +int print_ds_constructor_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T); +int print_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *DS, struct paramed_type *T); +int print_ds_constructor_web_page_empty (struct tl_ds_web_page *DS, struct paramed_type *T); +int print_ds_constructor_web_page_pending (struct tl_ds_web_page *DS, struct paramed_type *T); +int print_ds_constructor_web_page (struct tl_ds_web_page *DS, struct paramed_type *T); +int print_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T); +int print_ds_constructor_account_no_password (struct tl_ds_account_password *DS, struct paramed_type *T); +int print_ds_constructor_account_password (struct tl_ds_account_password *DS, struct paramed_type *T); +int print_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T); +int print_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T); +int print_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T); +int print_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T); +int print_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T); +int print_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T); +int print_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T); +int print_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T); +int print_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T); +int print_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T); +int print_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T); +int print_ds_constructor_binlog_start (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T); +int print_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *DS, struct paramed_type *T); +int print_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *DS, struct paramed_type *T); +int print_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T); +int print_ds_constructor_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T); +int print_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T); +int print_ds_constructor_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T); +int print_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T); +int print_ds_constructor_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T); +int print_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T); +int print_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *DS, struct paramed_type *T); +int print_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T); +int print_ds_constructor_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T); +int print_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T); +int print_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T); +int print_ds_constructor_help_support (struct tl_ds_help_support *DS, struct paramed_type *T); +int print_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T); +int print_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T); +int print_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T); +int print_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T); +int print_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T); +int print_ds_constructor_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T); +int print_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *DS, struct paramed_type *T); +int print_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T); +int print_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T); +int print_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *DS, struct paramed_type *T); +int print_ds_constructor_messages_message_empty (struct tl_ds_messages_message *DS, struct paramed_type *T); +int print_ds_constructor_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T); +int print_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *DS, struct paramed_type *T); +int print_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T); +int print_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T); +int print_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *DS, struct paramed_type *T); +int print_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T); +int print_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *DS, struct paramed_type *T); +int print_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T); +int print_ds_constructor_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T); +int print_ds_constructor_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T); +int print_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *DS, struct paramed_type *T); +int print_ds_constructor_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T); +int print_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *DS, struct paramed_type *T); +int print_ds_constructor_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T); +int print_ds_constructor_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T); +int print_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T); +int print_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *DS, struct paramed_type *T); +int print_ds_type_audio (struct tl_ds_audio *DS, struct paramed_type *T); +int print_ds_type_bare_audio (struct tl_ds_audio *DS, struct paramed_type *T); +int print_ds_type_authorization (struct tl_ds_authorization *DS, struct paramed_type *T); +int print_ds_type_bare_authorization (struct tl_ds_authorization *DS, struct paramed_type *T); +int print_ds_type_bool (struct tl_ds_bool *DS, struct paramed_type *T); +int print_ds_type_bare_bool (struct tl_ds_bool *DS, struct paramed_type *T); +int print_ds_type_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T); +int print_ds_type_bare_bot_command (struct tl_ds_bot_command *DS, struct paramed_type *T); +int print_ds_type_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T); +int print_ds_type_bare_bot_info (struct tl_ds_bot_info *DS, struct paramed_type *T); +int print_ds_type_bytes (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_type_bare_bytes (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_type_chat (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_type_bare_chat (struct tl_ds_chat *DS, struct paramed_type *T); +int print_ds_type_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T); +int print_ds_type_bare_chat_full (struct tl_ds_chat_full *DS, struct paramed_type *T); +int print_ds_type_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T); +int print_ds_type_bare_chat_invite (struct tl_ds_chat_invite *DS, struct paramed_type *T); +int print_ds_type_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T); +int print_ds_type_bare_chat_located (struct tl_ds_chat_located *DS, struct paramed_type *T); +int print_ds_type_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T); +int print_ds_type_bare_chat_participant (struct tl_ds_chat_participant *DS, struct paramed_type *T); +int print_ds_type_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T); +int print_ds_type_bare_chat_participants (struct tl_ds_chat_participants *DS, struct paramed_type *T); +int print_ds_type_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T); +int print_ds_type_bare_chat_photo (struct tl_ds_chat_photo *DS, struct paramed_type *T); +int print_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_type_config (struct tl_ds_config *DS, struct paramed_type *T); +int print_ds_type_bare_config (struct tl_ds_config *DS, struct paramed_type *T); +int print_ds_type_contact (struct tl_ds_contact *DS, struct paramed_type *T); +int print_ds_type_bare_contact (struct tl_ds_contact *DS, struct paramed_type *T); +int print_ds_type_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T); +int print_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *DS, struct paramed_type *T); +int print_ds_type_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T); +int print_ds_type_bare_contact_found (struct tl_ds_contact_found *DS, struct paramed_type *T); +int print_ds_type_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_type_bare_contact_link (struct tl_ds_contact_link *DS, struct paramed_type *T); +int print_ds_type_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T); +int print_ds_type_bare_contact_status (struct tl_ds_contact_status *DS, struct paramed_type *T); +int print_ds_type_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T); +int print_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *DS, struct paramed_type *T); +int print_ds_type_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T); +int print_ds_type_bare_dc_option (struct tl_ds_dc_option *DS, struct paramed_type *T); +int print_ds_type_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T); +int print_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *DS, struct paramed_type *T); +int print_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *DS, struct paramed_type *T); +int print_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T); +int print_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *DS, struct paramed_type *T); +int print_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *DS, struct paramed_type *T); +int print_ds_type_dialog (struct tl_ds_dialog *DS, struct paramed_type *T); +int print_ds_type_bare_dialog (struct tl_ds_dialog *DS, struct paramed_type *T); +int print_ds_type_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T); +int print_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *DS, struct paramed_type *T); +int print_ds_type_document (struct tl_ds_document *DS, struct paramed_type *T); +int print_ds_type_bare_document (struct tl_ds_document *DS, struct paramed_type *T); +int print_ds_type_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_type_bare_document_attribute (struct tl_ds_document_attribute *DS, struct paramed_type *T); +int print_ds_type_double (double *DS, struct paramed_type *T); +int print_ds_type_bare_double (double *DS, struct paramed_type *T); +int print_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *DS, struct paramed_type *T); +int print_ds_type_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T); +int print_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *DS, struct paramed_type *T); +int print_ds_type_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T); +int print_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *DS, struct paramed_type *T); +int print_ds_type_error (struct tl_ds_error *DS, struct paramed_type *T); +int print_ds_type_bare_error (struct tl_ds_error *DS, struct paramed_type *T); +int print_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T); +int print_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *DS, struct paramed_type *T); +int print_ds_type_file_location (struct tl_ds_file_location *DS, struct paramed_type *T); +int print_ds_type_bare_file_location (struct tl_ds_file_location *DS, struct paramed_type *T); +int print_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T); +int print_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *DS, struct paramed_type *T); +int print_ds_type_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T); +int print_ds_type_bare_geo_point (struct tl_ds_geo_point *DS, struct paramed_type *T); +int print_ds_type_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T); +int print_ds_type_bare_imported_contact (struct tl_ds_imported_contact *DS, struct paramed_type *T); +int print_ds_type_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T); +int print_ds_type_bare_input_app_event (struct tl_ds_input_app_event *DS, struct paramed_type *T); +int print_ds_type_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T); +int print_ds_type_bare_input_audio (struct tl_ds_input_audio *DS, struct paramed_type *T); +int print_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T); +int print_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *DS, struct paramed_type *T); +int print_ds_type_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T); +int print_ds_type_bare_input_contact (struct tl_ds_input_contact *DS, struct paramed_type *T); +int print_ds_type_input_document (struct tl_ds_input_document *DS, struct paramed_type *T); +int print_ds_type_bare_input_document (struct tl_ds_input_document *DS, struct paramed_type *T); +int print_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T); +int print_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *DS, struct paramed_type *T); +int print_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *DS, struct paramed_type *T); +int print_ds_type_input_file (struct tl_ds_input_file *DS, struct paramed_type *T); +int print_ds_type_bare_input_file (struct tl_ds_input_file *DS, struct paramed_type *T); +int print_ds_type_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_type_bare_input_file_location (struct tl_ds_input_file_location *DS, struct paramed_type *T); +int print_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T); +int print_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *DS, struct paramed_type *T); +int print_ds_type_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T); +int print_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *DS, struct paramed_type *T); +int print_ds_type_input_media (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_type_bare_input_media (struct tl_ds_input_media *DS, struct paramed_type *T); +int print_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *DS, struct paramed_type *T); +int print_ds_type_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_type_bare_input_peer (struct tl_ds_input_peer *DS, struct paramed_type *T); +int print_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T); +int print_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *DS, struct paramed_type *T); +int print_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_type_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T); +int print_ds_type_bare_input_photo (struct tl_ds_input_photo *DS, struct paramed_type *T); +int print_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T); +int print_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *DS, struct paramed_type *T); +int print_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T); +int print_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *DS, struct paramed_type *T); +int print_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *DS, struct paramed_type *T); +int print_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T); +int print_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *DS, struct paramed_type *T); +int print_ds_type_input_user (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_type_bare_input_user (struct tl_ds_input_user *DS, struct paramed_type *T); +int print_ds_type_input_video (struct tl_ds_input_video *DS, struct paramed_type *T); +int print_ds_type_bare_input_video (struct tl_ds_input_video *DS, struct paramed_type *T); +int print_ds_type_int (int *DS, struct paramed_type *T); +int print_ds_type_bare_int (int *DS, struct paramed_type *T); +int print_ds_type_int128 (struct tl_ds_int128 *DS, struct paramed_type *T); +int print_ds_type_bare_int128 (struct tl_ds_int128 *DS, struct paramed_type *T); +int print_ds_type_int256 (struct tl_ds_int256 *DS, struct paramed_type *T); +int print_ds_type_bare_int256 (struct tl_ds_int256 *DS, struct paramed_type *T); +int print_ds_type_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T); +int print_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *DS, struct paramed_type *T); +int print_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T); +int print_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *DS, struct paramed_type *T); +int print_ds_type_long (long long *DS, struct paramed_type *T); +int print_ds_type_bare_long (long long *DS, struct paramed_type *T); +int print_ds_type_message (struct tl_ds_message *DS, struct paramed_type *T); +int print_ds_type_bare_message (struct tl_ds_message *DS, struct paramed_type *T); +int print_ds_type_message_action (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_type_bare_message_action (struct tl_ds_message_action *DS, struct paramed_type *T); +int print_ds_type_message_media (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_type_bare_message_media (struct tl_ds_message_media *DS, struct paramed_type *T); +int print_ds_type_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_type_bare_messages_filter (struct tl_ds_messages_filter *DS, struct paramed_type *T); +int print_ds_type_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T); +int print_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *DS, struct paramed_type *T); +int print_ds_type_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_type_bare_notify_peer (struct tl_ds_notify_peer *DS, struct paramed_type *T); +int print_ds_type_null (struct tl_ds_null *DS, struct paramed_type *T); +int print_ds_type_bare_null (struct tl_ds_null *DS, struct paramed_type *T); +int print_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T); +int print_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *DS, struct paramed_type *T); +int print_ds_type_peer (struct tl_ds_peer *DS, struct paramed_type *T); +int print_ds_type_bare_peer (struct tl_ds_peer *DS, struct paramed_type *T); +int print_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T); +int print_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *DS, struct paramed_type *T); +int print_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *DS, struct paramed_type *T); +int print_ds_type_photo (struct tl_ds_photo *DS, struct paramed_type *T); +int print_ds_type_bare_photo (struct tl_ds_photo *DS, struct paramed_type *T); +int print_ds_type_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T); +int print_ds_type_bare_photo_size (struct tl_ds_photo_size *DS, struct paramed_type *T); +int print_ds_type_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T); +int print_ds_type_bare_privacy_key (struct tl_ds_privacy_key *DS, struct paramed_type *T); +int print_ds_type_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *DS, struct paramed_type *T); +int print_ds_type_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T); +int print_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *DS, struct paramed_type *T); +int print_ds_type_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T); +int print_ds_type_bare_reply_markup (struct tl_ds_reply_markup *DS, struct paramed_type *T); +int print_ds_type_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T); +int print_ds_type_bare_res_p_q (struct tl_ds_res_p_q *DS, struct paramed_type *T); +int print_ds_type_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_type_bare_send_message_action (struct tl_ds_send_message_action *DS, struct paramed_type *T); +int print_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T); +int print_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *DS, struct paramed_type *T); +int print_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *DS, struct paramed_type *T); +int print_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T); +int print_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *DS, struct paramed_type *T); +int print_ds_type_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T); +int print_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *DS, struct paramed_type *T); +int print_ds_type_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T); +int print_ds_type_bare_sticker_set (struct tl_ds_sticker_set *DS, struct paramed_type *T); +int print_ds_type_string (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_type_bare_string (struct tl_ds_string *DS, struct paramed_type *T); +int print_ds_type_update (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_type_bare_update (struct tl_ds_update *DS, struct paramed_type *T); +int print_ds_type_updates (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_type_bare_updates (struct tl_ds_updates *DS, struct paramed_type *T); +int print_ds_type_user (struct tl_ds_user *DS, struct paramed_type *T); +int print_ds_type_bare_user (struct tl_ds_user *DS, struct paramed_type *T); +int print_ds_type_user_full (struct tl_ds_user_full *DS, struct paramed_type *T); +int print_ds_type_bare_user_full (struct tl_ds_user_full *DS, struct paramed_type *T); +int print_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T); +int print_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *DS, struct paramed_type *T); +int print_ds_type_user_status (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_type_bare_user_status (struct tl_ds_user_status *DS, struct paramed_type *T); +int print_ds_type_vector (struct tl_ds_vector *DS, struct paramed_type *T); +int print_ds_type_bare_vector (struct tl_ds_vector *DS, struct paramed_type *T); +int print_ds_type_video (struct tl_ds_video *DS, struct paramed_type *T); +int print_ds_type_bare_video (struct tl_ds_video *DS, struct paramed_type *T); +int print_ds_type_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T); +int print_ds_type_bare_wall_paper (struct tl_ds_wall_paper *DS, struct paramed_type *T); +int print_ds_type_web_page (struct tl_ds_web_page *DS, struct paramed_type *T); +int print_ds_type_bare_web_page (struct tl_ds_web_page *DS, struct paramed_type *T); +int print_ds_type_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T); +int print_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *DS, struct paramed_type *T); +int print_ds_type_account_password (struct tl_ds_account_password *DS, struct paramed_type *T); +int print_ds_type_bare_account_password (struct tl_ds_account_password *DS, struct paramed_type *T); +int print_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T); +int print_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *DS, struct paramed_type *T); +int print_ds_type_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T); +int print_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *DS, struct paramed_type *T); +int print_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T); +int print_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *DS, struct paramed_type *T); +int print_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T); +int print_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *DS, struct paramed_type *T); +int print_ds_type_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T); +int print_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *DS, struct paramed_type *T); +int print_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T); +int print_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *DS, struct paramed_type *T); +int print_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T); +int print_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *DS, struct paramed_type *T); +int print_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T); +int print_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *DS, struct paramed_type *T); +int print_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T); +int print_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *DS, struct paramed_type *T); +int print_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T); +int print_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *DS, struct paramed_type *T); +int print_ds_type_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_type_bare_binlog_update (struct tl_ds_binlog_update *DS, struct paramed_type *T); +int print_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *DS, struct paramed_type *T); +int print_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *DS, struct paramed_type *T); +int print_ds_type_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_found (struct tl_ds_contacts_found *DS, struct paramed_type *T); +int print_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *DS, struct paramed_type *T); +int print_ds_type_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_link (struct tl_ds_contacts_link *DS, struct paramed_type *T); +int print_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T); +int print_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *DS, struct paramed_type *T); +int print_ds_type_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T); +int print_ds_type_bare_geochats_located (struct tl_ds_geochats_located *DS, struct paramed_type *T); +int print_ds_type_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T); +int print_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *DS, struct paramed_type *T); +int print_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T); +int print_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *DS, struct paramed_type *T); +int print_ds_type_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T); +int print_ds_type_bare_help_app_update (struct tl_ds_help_app_update *DS, struct paramed_type *T); +int print_ds_type_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T); +int print_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *DS, struct paramed_type *T); +int print_ds_type_help_support (struct tl_ds_help_support *DS, struct paramed_type *T); +int print_ds_type_bare_help_support (struct tl_ds_help_support *DS, struct paramed_type *T); +int print_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T); +int print_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *DS, struct paramed_type *T); +int print_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T); +int print_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *DS, struct paramed_type *T); +int print_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T); +int print_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *DS, struct paramed_type *T); +int print_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T); +int print_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *DS, struct paramed_type *T); +int print_ds_type_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T); +int print_ds_type_bare_messages_chats (struct tl_ds_messages_chats *DS, struct paramed_type *T); +int print_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T); +int print_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *DS, struct paramed_type *T); +int print_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T); +int print_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *DS, struct paramed_type *T); +int print_ds_type_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T); +int print_ds_type_bare_messages_message (struct tl_ds_messages_message *DS, struct paramed_type *T); +int print_ds_type_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T); +int print_ds_type_bare_messages_messages (struct tl_ds_messages_messages *DS, struct paramed_type *T); +int print_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T); +int print_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *DS, struct paramed_type *T); +int print_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T); +int print_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *DS, struct paramed_type *T); +int print_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T); +int print_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *DS, struct paramed_type *T); +int print_ds_type_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T); +int print_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *DS, struct paramed_type *T); +int print_ds_type_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T); +int print_ds_type_bare_photos_photo (struct tl_ds_photos_photo *DS, struct paramed_type *T); +int print_ds_type_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T); +int print_ds_type_bare_photos_photos (struct tl_ds_photos_photos *DS, struct paramed_type *T); +int print_ds_type_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *DS, struct paramed_type *T); +int print_ds_type_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T); +int print_ds_type_bare_updates_difference (struct tl_ds_updates_difference *DS, struct paramed_type *T); +int print_ds_type_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T); +int print_ds_type_bare_updates_state (struct tl_ds_updates_state *DS, struct paramed_type *T); +int print_ds_type_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T); +int print_ds_type_bare_upload_file (struct tl_ds_upload_file *DS, struct paramed_type *T); +int print_ds_type_any (void *DS, struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-skip.c b/libs/tgl/src/auto/auto-skip.c new file mode 100644 index 0000000000..9ff28a1de2 --- /dev/null +++ b/libs/tgl/src/auto/auto-skip.c @@ -0,0 +1,11302 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-skip.h" +#include "..\auto-static-skip.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-skip.h" +#include "auto-static-skip.c" +#include "mtproto-common.h" +#endif +#include +int skip_constructor_account_days_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + return 0; +} +int skip_constructor_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field11) < 0) { return -1;} + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field12) < 0) { return -1;} + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field13) < 0) { return -1;} + return 0; +} +int skip_constructor_bool_false (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int skip_constructor_bool_true (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int skip_constructor_bot_command (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_bot_command_old (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_bot_info_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + return 0; +} +int skip_constructor_bot_info (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_bytes (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_photo (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_point (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_photo (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field10) < 0) { return -1;} + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_participants (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer_notify_settings (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_exported_chat_invite (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_invite_already (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_invite (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_participants_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + return 0; +} +int skip_constructor_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_client_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field13) < 0) { return -1;} + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field14) < 0) { return -1;} + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field15) < 0) { return -1;} + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field16) < 0) { return -1;} + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field17) < 0) { return -1;} + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field18) < 0) { return -1;} + return 0; +} +int skip_constructor_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contact_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contact_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_contact_link_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int skip_constructor_contact_link_none (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int skip_constructor_contact_link_has_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int skip_constructor_contact_link_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int skip_constructor_contact_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_status (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contact_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_dc_option_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_decrypted_message_media (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_decrypted_message_action (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_read_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_flush_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int skip_constructor_decrypted_message_action_resend (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_send_message_action (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_request_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_accept_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_abort_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_commit_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_action_noop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int skip_constructor_decrypted_message_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_decrypted_message (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + return 0; +} +int skip_constructor_decrypted_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field10) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_external_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo_size (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field8) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field9) < 0) { return -1;} + return 0; +} +int skip_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_dialog (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer_notify_settings (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_disabled_feature (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo_size (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field8) < 0) { return -1;} + return 0; +} +int skip_constructor_document_l19 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo_size (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_image_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_animated (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + return 0; +} +int skip_constructor_document_attribute_sticker_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_sticker (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_sticker_set (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_document_attribute_filename (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_double (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; } + if (in_remaining () < 8) { return -1;} + fetch_double (); + return 0; +} +int skip_constructor_encrypted_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_chat_waiting (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_chat_requested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field7) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_chat_discarded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + return 0; +} +int skip_constructor_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_encrypted_file (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_encrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_error (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_chat_invite_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + return 0; +} +int skip_constructor_chat_invite_exported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_file_location_unavailable (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_geo_chat_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_geo_chat_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_action (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + return 0; +} +int skip_constructor_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_imported_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_app_event (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + return 0; +} +int skip_constructor_input_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + return 0; +} +int skip_constructor_input_chat_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_photo (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_phone_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + return 0; +} +int skip_constructor_input_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + return 0; +} +int skip_constructor_input_encrypted_file_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_file_big (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_video_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_encrypted_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_audio_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_document_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + return 0; +} +int skip_constructor_input_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + return 0; +} +int skip_constructor_input_media_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_photo (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_geo_point (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_uploaded_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_video (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_uploaded_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_audio (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_uploaded_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_file (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_document (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_geo_point (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_input_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_peer (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int skip_constructor_input_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int skip_constructor_input_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int skip_constructor_input_notify_geo_chat_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_input_geo_chat (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_peer_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int skip_constructor_input_peer_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int skip_constructor_input_peer_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_peer_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int skip_constructor_input_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int skip_constructor_input_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_input_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + return 0; +} +int skip_constructor_input_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_photo_crop_auto (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + return 0; +} +int skip_constructor_input_photo_crop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_double (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; } + return 0; +} +int skip_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int skip_constructor_input_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int skip_constructor_input_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int skip_constructor_input_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int skip_constructor_input_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_sticker_set_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + return 0; +} +int skip_constructor_input_sticker_set_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_sticker_set_short_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int skip_constructor_input_user_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int skip_constructor_input_user_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_user_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_input_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + return 0; +} +int skip_constructor_input_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_int (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; } + if (in_remaining () < 4) { return -1;} + fetch_int (); + return 0; +} +int skip_constructor_int128 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_int256 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_keyboard_button (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_keyboard_button_row (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; } + if (in_remaining () < 8) { return -1;} + fetch_long (); + return 0; +} +int skip_constructor_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field10) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_reply_markup (field11) < 0) { return -1;} + } + return 0; +} +int skip_constructor_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_action (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int skip_constructor_message_action_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_chat_edit_title (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_chat_edit_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_chat_delete_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int skip_constructor_message_action_chat_add_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_chat_delete_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_geo_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int skip_constructor_message_action_chat_joined_by_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int skip_constructor_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_video (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_geo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_point (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_unsupported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int skip_constructor_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_document (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_audio (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_web_page (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_point (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_message_media_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_video (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_input_messages_filter_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_input_messages_filter_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int skip_constructor_nearest_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int skip_constructor_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int skip_constructor_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int skip_constructor_null (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; } + return 0; +} +int skip_constructor_p_q_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int256 (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_p_q_inner_data_temp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int256 (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int skip_constructor_peer_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int skip_constructor_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int skip_constructor_peer_notify_settings_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + return 0; +} +int skip_constructor_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_point (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_point (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field7) < 0) { return -1;} + return 0; +} +int skip_constructor_photo_size_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_photo_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_photo_cached_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; } + return 0; +} +int skip_constructor_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int skip_constructor_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int skip_constructor_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int skip_constructor_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int skip_constructor_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_received_notify_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_reply_keyboard_hide (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_reply_keyboard_force_reply (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_reply_keyboard_markup (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_res_p_q (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_send_message_typing_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_cancel_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_record_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_upload_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_send_message_record_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_upload_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_send_message_upload_photo_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_upload_document_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_send_message_geo_location_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_send_message_choose_contact_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int skip_constructor_server_d_h_params_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_server_d_h_params_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_server_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_dh_gen_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_dh_gen_retry (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_dh_gen_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_sticker_pack (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_string (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; } + int l = prefetch_strlen (); + if (l < 0) { return -1;} + fetch_str (l); + return 0; +} +int skip_constructor_update_new_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_message_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_send_message_action (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_chat_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_send_message_action (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_participants (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_status (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_profile_photo (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_contact_registered (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_contact_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_contact_link (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_contact_link (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_new_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_new_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_chat_message (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_update_new_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_encrypted_message (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_encrypted_chat_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_update_encryption (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_encrypted_chat (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_encrypted_messages_read (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_chat_participant_add (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_chat_participant_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_dc_options (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_notify_peer (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer_notify_settings (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_service_notification (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_privacy (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_privacy_key (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_user_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_update_read_history_inbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_read_history_outbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_update_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_web_page (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_update_read_messages_contents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_update_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_updates_too_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + return 0; +} +int skip_constructor_update_short_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int skip_constructor_update_short_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + } + return 0; +} +int skip_constructor_update_short (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_update (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_updates_combined (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_updates (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_profile_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_status (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 14)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int skip_constructor_user_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_contacts_link (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_peer_notify_settings (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bot_info (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_user_profile_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + return 0; +} +int skip_constructor_user_profile_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_file_location (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_user_status_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int skip_constructor_user_status_online (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_user_status_offline (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_user_status_recently (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int skip_constructor_user_status_last_week (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int skip_constructor_user_status_last_month (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int skip_constructor_vector (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; } + if (ODDP(T->params[0])) { return -1; } + struct paramed_type *var0 = T->params[0]; assert (var0); + if (in_remaining () < 4) { return -1;} + struct paramed_type *var1 = INT2PTR (fetch_int ()); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + while (multiplicity3 -- > 0) { + if (skip_type_any (field3) < 0) { return -1;} + } + return 0; +} +int skip_constructor_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo_size (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + return 0; +} +int skip_constructor_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo_size (field9) < 0) { return -1;} + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + return 0; +} +int skip_constructor_wall_paper (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_wall_paper_solid (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_web_page_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_web_page_pending (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 7)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 8)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field15) < 0) { return -1;} + } + return 0; +} +int skip_constructor_account_authorizations (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_account_no_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_account_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_account_password_input_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + } + return 0; +} +int skip_constructor_account_password_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_account_privacy_rules (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_account_sent_change_phone_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_checked_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_exported_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_password_recovery (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_sent_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_auth_sent_app_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_encr_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; } + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + while (multiplicity1 -- > 0) { + if (skip_type_any (field1) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_start (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int skip_constructor_binlog_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_dc_option_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_auth_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_binlog_encr_key (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_default_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_dc_signed (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_our_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_dh_params (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_binlog_encr_key (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_pts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_qts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_date (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_seq (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_encr_chat_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_encr_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_binlog_encr_key (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_binlog_encr_key (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 27)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field15) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_binlog_encr_key (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_user_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_user_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user_profile_photo (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bot_info (field14) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_chat_add_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_chat_del_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_set_msg_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_message_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_message_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_action (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_reply_markup (field13) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_message_encr_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (in_remaining () < 4) { return -1;} + struct paramed_type *var0 = INT2PTR (fetch_int ()); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_decrypted_message_media (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_decrypted_message_action (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_encrypted_file (field10) < 0) { return -1;} + } + return 0; +} +int skip_constructor_binlog_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_binlog_reset_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int skip_constructor_contacts_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_blocked_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_contacts_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + return 0; +} +int skip_constructor_contacts_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_imported_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_contact_link (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_contact_link (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_contacts_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_geochats_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_geochats_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_geochats_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_geochats_stated_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_geo_chat_message (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_help_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bool (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_help_no_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + return 0; +} +int skip_constructor_help_invite_text (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_help_support (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_user (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_affected_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_affected_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + return 0; +} +int skip_constructor_messages_all_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_chat_full (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_dh_config_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_dh_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_dialogs (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_dialogs_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; } + return 0; +} +int skip_constructor_messages_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_sent_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_sent_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_encrypted_file (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_sent_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_sent_message_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_message_media (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field6) < 0) { return -1;} + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_sticker_set (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_messages_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + return 0; +} +int skip_constructor_messages_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_string (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_photos_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_photo (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_photos_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_photos_photos_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + return 0; +} +int skip_constructor_storage_file_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_jpeg (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_gif (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_png (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_pdf (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_mp3 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_mov (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_partial (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_mp4 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_storage_file_webp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int skip_constructor_updates_difference_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int skip_constructor_updates_difference (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_updates_difference_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (skip_type_vector (field5) < 0) { return -1;} + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int skip_constructor_updates_state (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field4) < 0) { return -1;} + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int skip_constructor_upload_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_storage_file_type (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_int (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (skip_type_bare_bytes (field3) < 0) { return -1;} + return 0; +} +int skip_type_account_days_t_t_l (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb8d0afdf: return skip_constructor_account_days_t_t_l (T); + default: return -1; + } +} +int skip_type_bare_account_days_t_t_l (struct paramed_type *T) { + if (skip_constructor_account_days_t_t_l (T) >= 0) { return 0; } + return -1; +} +int skip_type_audio (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x586988d8: return skip_constructor_audio_empty (T); + case 0xc7ac6496: return skip_constructor_audio (T); + default: return -1; + } +} +int skip_type_bare_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_audio_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x7bf2e6f6: return skip_constructor_authorization (T); + default: return -1; + } +} +int skip_type_bare_authorization (struct paramed_type *T) { + if (skip_constructor_authorization (T) >= 0) { return 0; } + return -1; +} +int skip_type_bool (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xbc799737: return skip_constructor_bool_false (T); + case 0x997275b5: return skip_constructor_bool_true (T); + default: return -1; + } +} +int skip_type_bare_bool (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bool_false (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bool_true (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_bot_command (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc27ac8c7: return skip_constructor_bot_command (T); + case 0xb79d22ab: return skip_constructor_bot_command_old (T); + default: return -1; + } +} +int skip_type_bare_bot_command (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bot_command (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bot_command_old (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_bot_info (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xbb2e37ce: return skip_constructor_bot_info_empty (T); + case 0x09cf585d: return skip_constructor_bot_info (T); + default: return -1; + } +} +int skip_type_bare_bot_info (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_bot_info_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_bot_info (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_bytes (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0ee1379f: return skip_constructor_bytes (T); + default: return -1; + } +} +int skip_type_bare_bytes (struct paramed_type *T) { + if (skip_constructor_bytes (T) >= 0) { return 0; } + return -1; +} +int skip_type_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x9ba2d800: return skip_constructor_chat_empty (T); + case 0x6e9c9bc7: return skip_constructor_chat (T); + case 0xfb0ccc41: return skip_constructor_chat_forbidden (T); + case 0x75eaea5a: return skip_constructor_geo_chat (T); + default: return -1; + } +} +int skip_type_bare_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_forbidden (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_chat_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x2e02a614: return skip_constructor_chat_full (T); + default: return -1; + } +} +int skip_type_bare_chat_full (struct paramed_type *T) { + if (skip_constructor_chat_full (T) >= 0) { return 0; } + return -1; +} +int skip_type_chat_invite (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5a686d7c: return skip_constructor_chat_invite_already (T); + case 0xce917dcd: return skip_constructor_chat_invite (T); + default: return -1; + } +} +int skip_type_bare_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_invite_already (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_invite (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_chat_located (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3631cf4c: return skip_constructor_chat_located (T); + default: return -1; + } +} +int skip_type_bare_chat_located (struct paramed_type *T) { + if (skip_constructor_chat_located (T) >= 0) { return 0; } + return -1; +} +int skip_type_chat_participant (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc8d7493e: return skip_constructor_chat_participant (T); + default: return -1; + } +} +int skip_type_bare_chat_participant (struct paramed_type *T) { + if (skip_constructor_chat_participant (T) >= 0) { return 0; } + return -1; +} +int skip_type_chat_participants (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0fd2bb8a: return skip_constructor_chat_participants_forbidden (T); + case 0x7841b415: return skip_constructor_chat_participants (T); + default: return -1; + } +} +int skip_type_bare_chat_participants (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_participants_forbidden (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_participants (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_chat_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x37c1011c: return skip_constructor_chat_photo_empty (T); + case 0x6153276a: return skip_constructor_chat_photo (T); + default: return -1; + } +} +int skip_type_bare_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_photo_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_client_d_h_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x6643b654: return skip_constructor_client_d_h_inner_data (T); + default: return -1; + } +} +int skip_type_bare_client_d_h_inner_data (struct paramed_type *T) { + if (skip_constructor_client_d_h_inner_data (T) >= 0) { return 0; } + return -1; +} +int skip_type_config (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x4e32b894: return skip_constructor_config (T); + default: return -1; + } +} +int skip_type_bare_config (struct paramed_type *T) { + if (skip_constructor_config (T) >= 0) { return 0; } + return -1; +} +int skip_type_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf911c994: return skip_constructor_contact (T); + default: return -1; + } +} +int skip_type_bare_contact (struct paramed_type *T) { + if (skip_constructor_contact (T) >= 0) { return 0; } + return -1; +} +int skip_type_contact_blocked (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x561bc879: return skip_constructor_contact_blocked (T); + default: return -1; + } +} +int skip_type_bare_contact_blocked (struct paramed_type *T) { + if (skip_constructor_contact_blocked (T) >= 0) { return 0; } + return -1; +} +int skip_type_contact_found (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xea879f95: return skip_constructor_contact_found (T); + default: return -1; + } +} +int skip_type_bare_contact_found (struct paramed_type *T) { + if (skip_constructor_contact_found (T) >= 0) { return 0; } + return -1; +} +int skip_type_contact_link (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5f4f9247: return skip_constructor_contact_link_unknown (T); + case 0xfeedd3ad: return skip_constructor_contact_link_none (T); + case 0x268f3f59: return skip_constructor_contact_link_has_phone (T); + case 0xd502c2d0: return skip_constructor_contact_link_contact (T); + default: return -1; + } +} +int skip_type_bare_contact_link (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contact_link_unknown (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_none (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_has_phone (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contact_link_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_contact_status (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xd3680c61: return skip_constructor_contact_status (T); + default: return -1; + } +} +int skip_type_bare_contact_status (struct paramed_type *T) { + if (skip_constructor_contact_status (T) >= 0) { return 0; } + return -1; +} +int skip_type_contact_suggested (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3de191a1: return skip_constructor_contact_suggested (T); + default: return -1; + } +} +int skip_type_bare_contact_suggested (struct paramed_type *T) { + if (skip_constructor_contact_suggested (T) >= 0) { return 0; } + return -1; +} +int skip_type_dc_option (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x2ec2a43c: return skip_constructor_dc_option_l28 (T); + case 0x05d8c6cc: return skip_constructor_dc_option (T); + default: return -1; + } +} +int skip_type_bare_dc_option (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_dc_option_l28 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dc_option (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_decrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x204d3878: return skip_constructor_decrypted_message (T); + case 0x73164160: return skip_constructor_decrypted_message_service (T); + default: return -1; + } +} +int skip_type_bare_decrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_service (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_decrypted_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa1733aec: return skip_constructor_decrypted_message_action_set_message_t_t_l (T); + case 0x0c4f40be: return skip_constructor_decrypted_message_action_read_messages (T); + case 0x65614304: return skip_constructor_decrypted_message_action_delete_messages (T); + case 0x8ac1f475: return skip_constructor_decrypted_message_action_screenshot_messages (T); + case 0x6719e45c: return skip_constructor_decrypted_message_action_flush_history (T); + case 0x511110b0: return skip_constructor_decrypted_message_action_resend (T); + case 0xf3048883: return skip_constructor_decrypted_message_action_notify_layer (T); + case 0xccb27641: return skip_constructor_decrypted_message_action_typing (T); + case 0xf3c9611b: return skip_constructor_decrypted_message_action_request_key (T); + case 0x6fe1735b: return skip_constructor_decrypted_message_action_accept_key (T); + case 0xdd05ec6b: return skip_constructor_decrypted_message_action_abort_key (T); + case 0xec2e0b9b: return skip_constructor_decrypted_message_action_commit_key (T); + case 0xa82fdd63: return skip_constructor_decrypted_message_action_noop (T); + default: return -1; + } +} +int skip_type_bare_decrypted_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_resend (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_typing (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_action_noop (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_decrypted_message_layer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1be31789: return skip_constructor_decrypted_message_layer (T); + default: return -1; + } +} +int skip_type_bare_decrypted_message_layer (struct paramed_type *T) { + if (skip_constructor_decrypted_message_layer (T) >= 0) { return 0; } + return -1; +} +int skip_type_decrypted_message_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x089f5c4a: return skip_constructor_decrypted_message_media_empty (T); + case 0x32798a8c: return skip_constructor_decrypted_message_media_photo (T); + case 0x35480a59: return skip_constructor_decrypted_message_media_geo_point (T); + case 0x588a0a97: return skip_constructor_decrypted_message_media_contact (T); + case 0xb095434b: return skip_constructor_decrypted_message_media_document (T); + case 0x524a415d: return skip_constructor_decrypted_message_media_video (T); + case 0x57e0a9cb: return skip_constructor_decrypted_message_media_audio (T); + case 0xfa95b0dd: return skip_constructor_decrypted_message_media_external_document (T); + case 0x4cee6ef3: return skip_constructor_decrypted_message_media_video_l12 (T); + case 0x6080758f: return skip_constructor_decrypted_message_media_audio_l12 (T); + default: return -1; + } +} +int skip_type_bare_decrypted_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_decrypted_message_media_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_dialog (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc1dd804a: return skip_constructor_dialog (T); + default: return -1; + } +} +int skip_type_bare_dialog (struct paramed_type *T) { + if (skip_constructor_dialog (T) >= 0) { return 0; } + return -1; +} +int skip_type_disabled_feature (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xae636f24: return skip_constructor_disabled_feature (T); + default: return -1; + } +} +int skip_type_bare_disabled_feature (struct paramed_type *T) { + if (skip_constructor_disabled_feature (T) >= 0) { return 0; } + return -1; +} +int skip_type_document (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x36f8c871: return skip_constructor_document_empty (T); + case 0xf9a39f4f: return skip_constructor_document (T); + case 0x9efc6326: return skip_constructor_document_l19 (T); + default: return -1; + } +} +int skip_type_bare_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_document_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_l19 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_document_attribute (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x6c37c15c: return skip_constructor_document_attribute_image_size (T); + case 0x11b58939: return skip_constructor_document_attribute_animated (T); + case 0x994c9882: return skip_constructor_document_attribute_sticker_l28 (T); + case 0x3a556302: return skip_constructor_document_attribute_sticker (T); + case 0x5910cccb: return skip_constructor_document_attribute_video (T); + case 0x051448e5: return skip_constructor_document_attribute_audio (T); + case 0x15590068: return skip_constructor_document_attribute_filename (T); + default: return -1; + } +} +int skip_type_bare_document_attribute (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_document_attribute_image_size (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_animated (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_sticker_l28 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_sticker (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_document_attribute_filename (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_double (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x2210c154: return skip_constructor_double (T); + default: return -1; + } +} +int skip_type_bare_double (struct paramed_type *T) { + if (skip_constructor_double (T) >= 0) { return 0; } + return -1; +} +int skip_type_encrypted_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xab7ec0a0: return skip_constructor_encrypted_chat_empty (T); + case 0x3bf703dc: return skip_constructor_encrypted_chat_waiting (T); + case 0xc878527e: return skip_constructor_encrypted_chat_requested (T); + case 0xfa56ce36: return skip_constructor_encrypted_chat (T); + case 0x13d6dd27: return skip_constructor_encrypted_chat_discarded (T); + default: return -1; + } +} +int skip_type_bare_encrypted_chat (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_chat_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_waiting (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_requested (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_chat_discarded (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_encrypted_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc21f497e: return skip_constructor_encrypted_file_empty (T); + case 0x4a70994c: return skip_constructor_encrypted_file (T); + default: return -1; + } +} +int skip_type_bare_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_file_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_file (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_encrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xed18c118: return skip_constructor_encrypted_message (T); + case 0x23734b06: return skip_constructor_encrypted_message_service (T); + default: return -1; + } +} +int skip_type_bare_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_encrypted_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_encrypted_message_service (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_error (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc4b9f9bb: return skip_constructor_error (T); + default: return -1; + } +} +int skip_type_bare_error (struct paramed_type *T) { + if (skip_constructor_error (T) >= 0) { return 0; } + return -1; +} +int skip_type_exported_chat_invite (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x69df3769: return skip_constructor_chat_invite_empty (T); + case 0xfc2e05bc: return skip_constructor_chat_invite_exported (T); + default: return -1; + } +} +int skip_type_bare_exported_chat_invite (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_chat_invite_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_chat_invite_exported (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_file_location (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x7c596b46: return skip_constructor_file_location_unavailable (T); + case 0x53d69076: return skip_constructor_file_location (T); + default: return -1; + } +} +int skip_type_bare_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_file_location_unavailable (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_geo_chat_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x60311a9b: return skip_constructor_geo_chat_message_empty (T); + case 0x4505f8e1: return skip_constructor_geo_chat_message (T); + case 0xd34fa24e: return skip_constructor_geo_chat_message_service (T); + default: return -1; + } +} +int skip_type_bare_geo_chat_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geo_chat_message_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_chat_message_service (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_geo_point (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1117dd5f: return skip_constructor_geo_point_empty (T); + case 0x2049d70c: return skip_constructor_geo_point (T); + default: return -1; + } +} +int skip_type_bare_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geo_point_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geo_point (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_imported_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xd0028438: return skip_constructor_imported_contact (T); + default: return -1; + } +} +int skip_type_bare_imported_contact (struct paramed_type *T) { + if (skip_constructor_imported_contact (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_app_event (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x770656a8: return skip_constructor_input_app_event (T); + default: return -1; + } +} +int skip_type_bare_input_app_event (struct paramed_type *T) { + if (skip_constructor_input_app_event (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_audio (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xd95adc84: return skip_constructor_input_audio_empty (T); + case 0x77d440ff: return skip_constructor_input_audio (T); + default: return -1; + } +} +int skip_type_bare_input_audio (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_audio_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_chat_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1ca48f57: return skip_constructor_input_chat_photo_empty (T); + case 0x94254732: return skip_constructor_input_chat_uploaded_photo (T); + case 0xb2e1bf08: return skip_constructor_input_chat_photo (T); + default: return -1; + } +} +int skip_type_bare_input_chat_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_chat_photo_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_chat_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_contact (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf392b7f4: return skip_constructor_input_phone_contact (T); + default: return -1; + } +} +int skip_type_bare_input_contact (struct paramed_type *T) { + if (skip_constructor_input_phone_contact (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_document (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x72f0eaae: return skip_constructor_input_document_empty (T); + case 0x18798952: return skip_constructor_input_document (T); + default: return -1; + } +} +int skip_type_bare_input_document (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_document_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_encrypted_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf141b5e1: return skip_constructor_input_encrypted_chat (T); + default: return -1; + } +} +int skip_type_bare_input_encrypted_chat (struct paramed_type *T) { + if (skip_constructor_input_encrypted_chat (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_encrypted_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1837c364: return skip_constructor_input_encrypted_file_empty (T); + case 0x64bd0306: return skip_constructor_input_encrypted_file_uploaded (T); + case 0x5a17b5e5: return skip_constructor_input_encrypted_file (T); + case 0x2dc173c8: return skip_constructor_input_encrypted_file_big_uploaded (T); + default: return -1; + } +} +int skip_type_bare_input_encrypted_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_encrypted_file_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf52ff27f: return skip_constructor_input_file (T); + case 0xfa4f0bb5: return skip_constructor_input_file_big (T); + default: return -1; + } +} +int skip_type_bare_input_file (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_file (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_file_big (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_file_location (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x14637196: return skip_constructor_input_file_location (T); + case 0x3d0364ec: return skip_constructor_input_video_file_location (T); + case 0xf5235d55: return skip_constructor_input_encrypted_file_location (T); + case 0x74dc404d: return skip_constructor_input_audio_file_location (T); + case 0x4e45abe9: return skip_constructor_input_document_file_location (T); + default: return -1; + } +} +int skip_type_bare_input_file_location (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_video_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_encrypted_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_audio_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_document_file_location (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_geo_chat (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x74d456fa: return skip_constructor_input_geo_chat (T); + default: return -1; + } +} +int skip_type_bare_input_geo_chat (struct paramed_type *T) { + if (skip_constructor_input_geo_chat (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_geo_point (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xe4c123d6: return skip_constructor_input_geo_point_empty (T); + case 0xf3b7acc9: return skip_constructor_input_geo_point (T); + default: return -1; + } +} +int skip_type_bare_input_geo_point (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_geo_point_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_geo_point (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x9664f57f: return skip_constructor_input_media_empty (T); + case 0xf7aff1c0: return skip_constructor_input_media_uploaded_photo (T); + case 0xe9bfb4f3: return skip_constructor_input_media_photo (T); + case 0xf9c44144: return skip_constructor_input_media_geo_point (T); + case 0xa6e45987: return skip_constructor_input_media_contact (T); + case 0xe13fd4bc: return skip_constructor_input_media_uploaded_video (T); + case 0x96fb97dc: return skip_constructor_input_media_uploaded_thumb_video (T); + case 0x936a4ebd: return skip_constructor_input_media_video (T); + case 0x4e498cab: return skip_constructor_input_media_uploaded_audio (T); + case 0x89938781: return skip_constructor_input_media_audio (T); + case 0xffe76b78: return skip_constructor_input_media_uploaded_document (T); + case 0x41481486: return skip_constructor_input_media_uploaded_thumb_document (T); + case 0xd184e841: return skip_constructor_input_media_document (T); + case 0x2827a81a: return skip_constructor_input_media_venue (T); + default: return -1; + } +} +int skip_type_bare_input_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_media_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_geo_point (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_media_venue (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_notify_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb8bc5b0c: return skip_constructor_input_notify_peer (T); + case 0x193b4417: return skip_constructor_input_notify_users (T); + case 0x4a95e84e: return skip_constructor_input_notify_chats (T); + case 0xa429b886: return skip_constructor_input_notify_all (T); + case 0x4d8ddec8: return skip_constructor_input_notify_geo_chat_peer (T); + default: return -1; + } +} +int skip_type_bare_input_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_notify_peer (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_chats (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x7f3b18ea: return skip_constructor_input_peer_empty (T); + case 0x7da07ec9: return skip_constructor_input_peer_self (T); + case 0x1023dbe8: return skip_constructor_input_peer_contact (T); + case 0x9b447325: return skip_constructor_input_peer_foreign (T); + case 0x179be863: return skip_constructor_input_peer_chat (T); + default: return -1; + } +} +int skip_type_bare_input_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_peer_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_self (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_foreign (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_chat (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_peer_notify_events (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf03064d8: return skip_constructor_input_peer_notify_events_empty (T); + case 0xe86a2c74: return skip_constructor_input_peer_notify_events_all (T); + default: return -1; + } +} +int skip_type_bare_input_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_peer_notify_events_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_peer_notify_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x46a2ce98: return skip_constructor_input_peer_notify_settings (T); + default: return -1; + } +} +int skip_type_bare_input_peer_notify_settings (struct paramed_type *T) { + if (skip_constructor_input_peer_notify_settings (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1cd7bf0d: return skip_constructor_input_photo_empty (T); + case 0xfb95c6c4: return skip_constructor_input_photo (T); + default: return -1; + } +} +int skip_type_bare_input_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_photo_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_photo_crop (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xade6b004: return skip_constructor_input_photo_crop_auto (T); + case 0xd9915325: return skip_constructor_input_photo_crop (T); + default: return -1; + } +} +int skip_type_bare_input_photo_crop (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_photo_crop_auto (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_photo_crop (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_privacy_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x4f96cb18: return skip_constructor_input_privacy_key_status_timestamp (T); + default: return -1; + } +} +int skip_type_bare_input_privacy_key (struct paramed_type *T) { + if (skip_constructor_input_privacy_key_status_timestamp (T) >= 0) { return 0; } + return -1; +} +int skip_type_input_privacy_rule (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0d09e07b: return skip_constructor_input_privacy_value_allow_contacts (T); + case 0x184b35ce: return skip_constructor_input_privacy_value_allow_all (T); + case 0x131cc67f: return skip_constructor_input_privacy_value_allow_users (T); + case 0x0ba52007: return skip_constructor_input_privacy_value_disallow_contacts (T); + case 0xd66b66c9: return skip_constructor_input_privacy_value_disallow_all (T); + case 0x90110467: return skip_constructor_input_privacy_value_disallow_users (T); + default: return -1; + } +} +int skip_type_bare_input_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xffb62b95: return skip_constructor_input_sticker_set_empty (T); + case 0x9de7a269: return skip_constructor_input_sticker_set_i_d (T); + case 0x861cc8a0: return skip_constructor_input_sticker_set_short_name (T); + default: return -1; + } +} +int skip_type_bare_input_sticker_set (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_sticker_set_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_sticker_set_i_d (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_sticker_set_short_name (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_user (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb98886cf: return skip_constructor_input_user_empty (T); + case 0xf7c1b13f: return skip_constructor_input_user_self (T); + case 0x86e94f65: return skip_constructor_input_user_contact (T); + case 0x655e74ff: return skip_constructor_input_user_foreign (T); + default: return -1; + } +} +int skip_type_bare_input_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_user_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_self (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_user_foreign (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_input_video (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5508ec75: return skip_constructor_input_video_empty (T); + case 0xee579652: return skip_constructor_input_video (T); + default: return -1; + } +} +int skip_type_bare_input_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_video_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_int (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa8509bda: return skip_constructor_int (T); + default: return -1; + } +} +int skip_type_bare_int (struct paramed_type *T) { + if (skip_constructor_int (T) >= 0) { return 0; } + return -1; +} +int skip_type_int128 (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x7d36c439: return skip_constructor_int128 (T); + default: return -1; + } +} +int skip_type_bare_int128 (struct paramed_type *T) { + if (skip_constructor_int128 (T) >= 0) { return 0; } + return -1; +} +int skip_type_int256 (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf2c798b3: return skip_constructor_int256 (T); + default: return -1; + } +} +int skip_type_bare_int256 (struct paramed_type *T) { + if (skip_constructor_int256 (T) >= 0) { return 0; } + return -1; +} +int skip_type_keyboard_button (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa2fa4880: return skip_constructor_keyboard_button (T); + default: return -1; + } +} +int skip_type_bare_keyboard_button (struct paramed_type *T) { + if (skip_constructor_keyboard_button (T) >= 0) { return 0; } + return -1; +} +int skip_type_keyboard_button_row (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x77608b83: return skip_constructor_keyboard_button_row (T); + default: return -1; + } +} +int skip_type_bare_keyboard_button_row (struct paramed_type *T) { + if (skip_constructor_keyboard_button_row (T) >= 0) { return 0; } + return -1; +} +int skip_type_long (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x22076cba: return skip_constructor_long (T); + default: return -1; + } +} +int skip_type_bare_long (struct paramed_type *T) { + if (skip_constructor_long (T) >= 0) { return 0; } + return -1; +} +int skip_type_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x83e5de54: return skip_constructor_message_empty (T); + case 0xc3060325: return skip_constructor_message (T); + case 0x1d86f70e: return skip_constructor_message_service (T); + default: return -1; + } +} +int skip_type_bare_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_service (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb6aef7b0: return skip_constructor_message_action_empty (T); + case 0xa6638b9a: return skip_constructor_message_action_chat_create (T); + case 0xb5a1ce5a: return skip_constructor_message_action_chat_edit_title (T); + case 0x7fcb13a8: return skip_constructor_message_action_chat_edit_photo (T); + case 0x95e3fbef: return skip_constructor_message_action_chat_delete_photo (T); + case 0x5e3cfc4b: return skip_constructor_message_action_chat_add_user (T); + case 0xb2ae9b0c: return skip_constructor_message_action_chat_delete_user (T); + case 0x6f038ebc: return skip_constructor_message_action_geo_chat_create (T); + case 0x0c7d53de: return skip_constructor_message_action_geo_chat_checkin (T); + case 0xf89cf5e8: return skip_constructor_message_action_chat_joined_by_link (T); + default: return -1; + } +} +int skip_type_bare_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_action_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_create (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_edit_title (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_add_user (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_delete_user (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_geo_chat_create (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_message_media (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3ded6320: return skip_constructor_message_media_empty (T); + case 0x3d8ce53d: return skip_constructor_message_media_photo (T); + case 0x5bcf1675: return skip_constructor_message_media_video (T); + case 0x56e0d474: return skip_constructor_message_media_geo (T); + case 0x5e7d2f39: return skip_constructor_message_media_contact (T); + case 0x9f84f49e: return skip_constructor_message_media_unsupported (T); + case 0x2fda2204: return skip_constructor_message_media_document (T); + case 0xc6b68300: return skip_constructor_message_media_audio (T); + case 0xa32dd600: return skip_constructor_message_media_web_page (T); + case 0x7912b71f: return skip_constructor_message_media_venue (T); + case 0xc8c45a2a: return skip_constructor_message_media_photo_l27 (T); + case 0xa2d24290: return skip_constructor_message_media_video_l27 (T); + default: return -1; + } +} +int skip_type_bare_message_media (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_message_media_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_geo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_contact (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_unsupported (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_web_page (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_venue (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_photo_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_message_media_video_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_filter (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x57e2f66c: return skip_constructor_input_messages_filter_empty (T); + case 0x9609a51c: return skip_constructor_input_messages_filter_photos (T); + case 0x9fc00e65: return skip_constructor_input_messages_filter_video (T); + case 0x56e9f0e4: return skip_constructor_input_messages_filter_photo_video (T); + case 0xd95e73bb: return skip_constructor_input_messages_filter_photo_video_documents (T); + case 0x9eddf188: return skip_constructor_input_messages_filter_document (T); + case 0xcfc87522: return skip_constructor_input_messages_filter_audio (T); + default: return -1; + } +} +int skip_type_bare_messages_filter (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_input_messages_filter_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photos (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_photo_video_documents (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_document (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_input_messages_filter_audio (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_nearest_dc (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x8e1a1775: return skip_constructor_nearest_dc (T); + default: return -1; + } +} +int skip_type_bare_nearest_dc (struct paramed_type *T) { + if (skip_constructor_nearest_dc (T) >= 0) { return 0; } + return -1; +} +int skip_type_notify_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x9fd40bd8: return skip_constructor_notify_peer (T); + case 0xb4c83b4c: return skip_constructor_notify_users (T); + case 0xc007cec3: return skip_constructor_notify_chats (T); + case 0x74d07c60: return skip_constructor_notify_all (T); + default: return -1; + } +} +int skip_type_bare_notify_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_notify_peer (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_chats (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_notify_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_null (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x56730bcc: return skip_constructor_null (T); + default: return -1; + } +} +int skip_type_bare_null (struct paramed_type *T) { + if (skip_constructor_null (T) >= 0) { return 0; } + return -1; +} +int skip_type_p_q_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x83c95aec: return skip_constructor_p_q_inner_data (T); + case 0x3c6a84d4: return skip_constructor_p_q_inner_data_temp (T); + default: return -1; + } +} +int skip_type_bare_p_q_inner_data (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_p_q_inner_data (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_p_q_inner_data_temp (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_peer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x9db1bc6d: return skip_constructor_peer_user (T); + case 0xbad0e5bb: return skip_constructor_peer_chat (T); + default: return -1; + } +} +int skip_type_bare_peer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_user (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_chat (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_peer_notify_events (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xadd53cb3: return skip_constructor_peer_notify_events_empty (T); + case 0x6d1ded88: return skip_constructor_peer_notify_events_all (T); + default: return -1; + } +} +int skip_type_bare_peer_notify_events (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_notify_events_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_notify_events_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_peer_notify_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x70a68512: return skip_constructor_peer_notify_settings_empty (T); + case 0x8d5e11ee: return skip_constructor_peer_notify_settings (T); + default: return -1; + } +} +int skip_type_bare_peer_notify_settings (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_peer_notify_settings_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_peer_notify_settings (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x2331b22d: return skip_constructor_photo_empty (T); + case 0xc3838076: return skip_constructor_photo (T); + case 0x22b56751: return skip_constructor_photo_l27 (T); + default: return -1; + } +} +int skip_type_bare_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photo_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_photo_size (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0e17e23c: return skip_constructor_photo_size_empty (T); + case 0x77bfb61b: return skip_constructor_photo_size (T); + case 0xe9a734fa: return skip_constructor_photo_cached_size (T); + default: return -1; + } +} +int skip_type_bare_photo_size (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photo_size_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_size (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photo_cached_size (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_privacy_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xbc2eab30: return skip_constructor_privacy_key_status_timestamp (T); + default: return -1; + } +} +int skip_type_bare_privacy_key (struct paramed_type *T) { + if (skip_constructor_privacy_key_status_timestamp (T) >= 0) { return 0; } + return -1; +} +int skip_type_privacy_rule (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xfffe1bac: return skip_constructor_privacy_value_allow_contacts (T); + case 0x65427b82: return skip_constructor_privacy_value_allow_all (T); + case 0x4d5bbe0c: return skip_constructor_privacy_value_allow_users (T); + case 0xf888fa1a: return skip_constructor_privacy_value_disallow_contacts (T); + case 0x8b73e763: return skip_constructor_privacy_value_disallow_all (T); + case 0x0c7f49b7: return skip_constructor_privacy_value_disallow_users (T); + default: return -1; + } +} +int skip_type_bare_privacy_rule (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_allow_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_allow_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_all (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_privacy_value_disallow_users (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_received_notify_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa384b779: return skip_constructor_received_notify_message (T); + default: return -1; + } +} +int skip_type_bare_received_notify_message (struct paramed_type *T) { + if (skip_constructor_received_notify_message (T) >= 0) { return 0; } + return -1; +} +int skip_type_reply_markup (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa03e5b85: return skip_constructor_reply_keyboard_hide (T); + case 0xf4108aa0: return skip_constructor_reply_keyboard_force_reply (T); + case 0x3502758c: return skip_constructor_reply_keyboard_markup (T); + default: return -1; + } +} +int skip_type_bare_reply_markup (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_reply_keyboard_hide (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_reply_keyboard_markup (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_res_p_q (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x05162463: return skip_constructor_res_p_q (T); + default: return -1; + } +} +int skip_type_bare_res_p_q (struct paramed_type *T) { + if (skip_constructor_res_p_q (T) >= 0) { return 0; } + return -1; +} +int skip_type_send_message_action (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x16bf744e: return skip_constructor_send_message_typing_action (T); + case 0xfd5ec8f5: return skip_constructor_send_message_cancel_action (T); + case 0xa187d66f: return skip_constructor_send_message_record_video_action (T); + case 0x92042ff7: return skip_constructor_send_message_upload_video_action_l27 (T); + case 0xe9763aec: return skip_constructor_send_message_upload_video_action (T); + case 0xd52f73f7: return skip_constructor_send_message_record_audio_action (T); + case 0xe6ac8a6f: return skip_constructor_send_message_upload_audio_action_l27 (T); + case 0xf351d7ab: return skip_constructor_send_message_upload_audio_action (T); + case 0xd1d34a26: return skip_constructor_send_message_upload_photo_action (T); + case 0x8faee98e: return skip_constructor_send_message_upload_document_action_l27 (T); + case 0xaa0cd9e4: return skip_constructor_send_message_upload_document_action (T); + case 0x176f8ba1: return skip_constructor_send_message_geo_location_action (T); + case 0x628cbc6f: return skip_constructor_send_message_choose_contact_action (T); + default: return -1; + } +} +int skip_type_bare_send_message_action (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_send_message_typing_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_cancel_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_record_video_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_video_action_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_video_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_record_audio_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_audio_action_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_audio_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_photo_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_document_action_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_upload_document_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_geo_location_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_send_message_choose_contact_action (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_server_d_h_params (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x79cb045d: return skip_constructor_server_d_h_params_fail (T); + case 0xd0e8075c: return skip_constructor_server_d_h_params_ok (T); + default: return -1; + } +} +int skip_type_bare_server_d_h_params (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_server_d_h_params_fail (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_server_d_h_params_ok (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_server_d_h_inner_data (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb5890dba: return skip_constructor_server_d_h_inner_data (T); + default: return -1; + } +} +int skip_type_bare_server_d_h_inner_data (struct paramed_type *T) { + if (skip_constructor_server_d_h_inner_data (T) >= 0) { return 0; } + return -1; +} +int skip_type_set_client_d_h_params_answer (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3bcbf734: return skip_constructor_dh_gen_ok (T); + case 0x46dc1fb9: return skip_constructor_dh_gen_retry (T); + case 0xa69dae02: return skip_constructor_dh_gen_fail (T); + default: return -1; + } +} +int skip_type_bare_set_client_d_h_params_answer (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_dh_gen_ok (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dh_gen_retry (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_dh_gen_fail (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_sticker_pack (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x12b299d4: return skip_constructor_sticker_pack (T); + default: return -1; + } +} +int skip_type_bare_sticker_pack (struct paramed_type *T) { + if (skip_constructor_sticker_pack (T) >= 0) { return 0; } + return -1; +} +int skip_type_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa7a43b17: return skip_constructor_sticker_set (T); + default: return -1; + } +} +int skip_type_bare_sticker_set (struct paramed_type *T) { + if (skip_constructor_sticker_set (T) >= 0) { return 0; } + return -1; +} +int skip_type_string (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb5286e24: return skip_constructor_string (T); + default: return -1; + } +} +int skip_type_bare_string (struct paramed_type *T) { + if (skip_constructor_string (T) >= 0) { return 0; } + return -1; +} +int skip_type_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1f2b0afd: return skip_constructor_update_new_message (T); + case 0x4e90bfd6: return skip_constructor_update_message_i_d (T); + case 0xa20db0e5: return skip_constructor_update_delete_messages (T); + case 0x5c486927: return skip_constructor_update_user_typing (T); + case 0x9a65ea1f: return skip_constructor_update_chat_user_typing (T); + case 0x07761198: return skip_constructor_update_chat_participants (T); + case 0x1bfbd823: return skip_constructor_update_user_status (T); + case 0xa7332b73: return skip_constructor_update_user_name (T); + case 0x95313b0c: return skip_constructor_update_user_photo (T); + case 0x2575bbb9: return skip_constructor_update_contact_registered (T); + case 0x9d2e67c5: return skip_constructor_update_contact_link (T); + case 0x8f06529a: return skip_constructor_update_new_authorization (T); + case 0x5a68e3f7: return skip_constructor_update_new_geo_chat_message (T); + case 0x12bcbd9a: return skip_constructor_update_new_encrypted_message (T); + case 0x1710f156: return skip_constructor_update_encrypted_chat_typing (T); + case 0xb4a2e88d: return skip_constructor_update_encryption (T); + case 0x38fe25b7: return skip_constructor_update_encrypted_messages_read (T); + case 0x3a0eeb22: return skip_constructor_update_chat_participant_add (T); + case 0x6e5f8c22: return skip_constructor_update_chat_participant_delete (T); + case 0x8e5e9873: return skip_constructor_update_dc_options (T); + case 0x80ece81a: return skip_constructor_update_user_blocked (T); + case 0xbec268ef: return skip_constructor_update_notify_settings (T); + case 0x382dd3e4: return skip_constructor_update_service_notification (T); + case 0xee3b272a: return skip_constructor_update_privacy (T); + case 0x12b9417b: return skip_constructor_update_user_phone (T); + case 0x9961fd5c: return skip_constructor_update_read_history_inbox (T); + case 0x2f2f21bf: return skip_constructor_update_read_history_outbox (T); + case 0x2cc36971: return skip_constructor_update_web_page (T); + case 0x68c13933: return skip_constructor_update_read_messages_contents (T); + case 0x03114739: return skip_constructor_update_msg_update (T); + default: return -1; + } +} +int skip_type_bare_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_update_new_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_message_i_d (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_delete_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_typing (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_user_typing (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participants (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_status (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_name (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_contact_registered (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_contact_link (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_authorization (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_geo_chat_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_new_encrypted_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encryption (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_encrypted_messages_read (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participant_add (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_chat_participant_delete (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_dc_options (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_blocked (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_notify_settings (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_service_notification (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_privacy (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_user_phone (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_history_inbox (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_history_outbox (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_web_page (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_read_messages_contents (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_msg_update (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_updates (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xe317af7e: return skip_constructor_updates_too_long (T); + case 0xed5c2127: return skip_constructor_update_short_message (T); + case 0x52238b3c: return skip_constructor_update_short_chat_message (T); + case 0x78d4dec1: return skip_constructor_update_short (T); + case 0x725b04c3: return skip_constructor_updates_combined (T); + case 0x74ae4240: return skip_constructor_updates (T); + default: return -1; + } +} +int skip_type_bare_updates (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_updates_too_long (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short_chat_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_update_short (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_combined (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_user (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x200250ba: return skip_constructor_user_empty (T); + case 0x22e49072: return skip_constructor_user (T); + default: return -1; + } +} +int skip_type_bare_user (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_user_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5a89ac5b: return skip_constructor_user_full (T); + default: return -1; + } +} +int skip_type_bare_user_full (struct paramed_type *T) { + if (skip_constructor_user_full (T) >= 0) { return 0; } + return -1; +} +int skip_type_user_profile_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x4f11bae1: return skip_constructor_user_profile_photo_empty (T); + case 0xd559d8c8: return skip_constructor_user_profile_photo (T); + default: return -1; + } +} +int skip_type_bare_user_profile_photo (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_profile_photo_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_profile_photo (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_user_status (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x09d05049: return skip_constructor_user_status_empty (T); + case 0xedb93949: return skip_constructor_user_status_online (T); + case 0x008c703f: return skip_constructor_user_status_offline (T); + case 0xe26f42f1: return skip_constructor_user_status_recently (T); + case 0x07bf09fc: return skip_constructor_user_status_last_week (T); + case 0x77ebc742: return skip_constructor_user_status_last_month (T); + default: return -1; + } +} +int skip_type_bare_user_status (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_user_status_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_online (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_offline (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_recently (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_last_week (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_user_status_last_month (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_vector (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1cb5c415: return skip_constructor_vector (T); + default: return -1; + } +} +int skip_type_bare_vector (struct paramed_type *T) { + if (skip_constructor_vector (T) >= 0) { return 0; } + return -1; +} +int skip_type_video (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc10658a8: return skip_constructor_video_empty (T); + case 0xee9f4a4d: return skip_constructor_video (T); + case 0x388fa391: return skip_constructor_video_l27 (T); + default: return -1; + } +} +int skip_type_bare_video (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_video_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_video (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_video_l27 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_wall_paper (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xccb03657: return skip_constructor_wall_paper (T); + case 0x63117f24: return skip_constructor_wall_paper_solid (T); + default: return -1; + } +} +int skip_type_bare_wall_paper (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_wall_paper (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_wall_paper_solid (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_web_page (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xeb1477e8: return skip_constructor_web_page_empty (T); + case 0xc586da1c: return skip_constructor_web_page_pending (T); + case 0xa31ea0b5: return skip_constructor_web_page (T); + default: return -1; + } +} +int skip_type_bare_web_page (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_web_page_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_web_page_pending (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_web_page (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_account_authorizations (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1250abde: return skip_constructor_account_authorizations (T); + default: return -1; + } +} +int skip_type_bare_account_authorizations (struct paramed_type *T) { + if (skip_constructor_account_authorizations (T) >= 0) { return 0; } + return -1; +} +int skip_type_account_password (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x96dabc18: return skip_constructor_account_no_password (T); + case 0x7c18141c: return skip_constructor_account_password (T); + default: return -1; + } +} +int skip_type_bare_account_password (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_account_no_password (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_account_password (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_account_password_input_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xbcfc532c: return skip_constructor_account_password_input_settings (T); + default: return -1; + } +} +int skip_type_bare_account_password_input_settings (struct paramed_type *T) { + if (skip_constructor_account_password_input_settings (T) >= 0) { return 0; } + return -1; +} +int skip_type_account_password_settings (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb7b72ab3: return skip_constructor_account_password_settings (T); + default: return -1; + } +} +int skip_type_bare_account_password_settings (struct paramed_type *T) { + if (skip_constructor_account_password_settings (T) >= 0) { return 0; } + return -1; +} +int skip_type_account_privacy_rules (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x554abb6f: return skip_constructor_account_privacy_rules (T); + default: return -1; + } +} +int skip_type_bare_account_privacy_rules (struct paramed_type *T) { + if (skip_constructor_account_privacy_rules (T) >= 0) { return 0; } + return -1; +} +int skip_type_account_sent_change_phone_code (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa4f58c4c: return skip_constructor_account_sent_change_phone_code (T); + default: return -1; + } +} +int skip_type_bare_account_sent_change_phone_code (struct paramed_type *T) { + if (skip_constructor_account_sent_change_phone_code (T) >= 0) { return 0; } + return -1; +} +int skip_type_auth_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xff036af1: return skip_constructor_auth_authorization (T); + default: return -1; + } +} +int skip_type_bare_auth_authorization (struct paramed_type *T) { + if (skip_constructor_auth_authorization (T) >= 0) { return 0; } + return -1; +} +int skip_type_auth_checked_phone (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x811ea28e: return skip_constructor_auth_checked_phone (T); + default: return -1; + } +} +int skip_type_bare_auth_checked_phone (struct paramed_type *T) { + if (skip_constructor_auth_checked_phone (T) >= 0) { return 0; } + return -1; +} +int skip_type_auth_exported_authorization (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xdf969c2d: return skip_constructor_auth_exported_authorization (T); + default: return -1; + } +} +int skip_type_bare_auth_exported_authorization (struct paramed_type *T) { + if (skip_constructor_auth_exported_authorization (T) >= 0) { return 0; } + return -1; +} +int skip_type_auth_password_recovery (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x137948a5: return skip_constructor_auth_password_recovery (T); + default: return -1; + } +} +int skip_type_bare_auth_password_recovery (struct paramed_type *T) { + if (skip_constructor_auth_password_recovery (T) >= 0) { return 0; } + return -1; +} +int skip_type_auth_sent_code (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xefed51d9: return skip_constructor_auth_sent_code (T); + case 0xe325edcf: return skip_constructor_auth_sent_app_code (T); + default: return -1; + } +} +int skip_type_bare_auth_sent_code (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_auth_sent_code (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_auth_sent_app_code (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_binlog_encr_key (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0377168f: return skip_constructor_binlog_encr_key (T); + default: return -1; + } +} +int skip_type_bare_binlog_encr_key (struct paramed_type *T) { + if (skip_constructor_binlog_encr_key (T) >= 0) { return 0; } + return -1; +} +int skip_type_binlog_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3b06de69: return skip_constructor_binlog_start (T); + case 0xf96feb32: return skip_constructor_binlog_dc_option (T); + case 0x7c0d22d8: return skip_constructor_binlog_dc_option_new (T); + case 0x71e8c156: return skip_constructor_binlog_auth_key (T); + case 0x9e83dbdc: return skip_constructor_binlog_default_dc (T); + case 0x26451bb5: return skip_constructor_binlog_dc_signed (T); + case 0x68a870e8: return skip_constructor_binlog_our_id (T); + case 0xeaeb7826: return skip_constructor_binlog_set_dh_params (T); + case 0x2ca8c939: return skip_constructor_binlog_set_pts (T); + case 0xd95738ac: return skip_constructor_binlog_set_qts (T); + case 0x1d0f4b52: return skip_constructor_binlog_set_date (T); + case 0x6eeb2989: return skip_constructor_binlog_set_seq (T); + case 0xee1b38e8: return skip_constructor_binlog_encr_chat_delete (T); + case 0x84977251: return skip_constructor_binlog_encr_chat_new (T); + case 0x9d49488d: return skip_constructor_binlog_encr_chat_exchange_new (T); + case 0xac55d447: return skip_constructor_binlog_user_delete (T); + case 0x127cf2f9: return skip_constructor_binlog_user_new (T); + case 0x0a10aa92: return skip_constructor_binlog_chat_new (T); + case 0x535475ea: return skip_constructor_binlog_chat_add_participant (T); + case 0x7dd1a1a2: return skip_constructor_binlog_chat_del_participant (T); + case 0x3c873416: return skip_constructor_binlog_set_msg_id (T); + case 0x847e77b1: return skip_constructor_binlog_message_delete (T); + case 0x427cfcdb: return skip_constructor_binlog_message_new (T); + case 0x6cf7cabc: return skip_constructor_binlog_message_encr_new (T); + case 0x6dd4d85f: return skip_constructor_binlog_msg_update (T); + case 0x83327955: return skip_constructor_binlog_reset_authorization (T); + default: return -1; + } +} +int skip_type_bare_binlog_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_binlog_start (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_option (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_option_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_auth_key (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_default_dc (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_dc_signed (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_our_id (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_dh_params (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_pts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_qts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_date (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_seq (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_encr_chat_exchange_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_user_delete (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_user_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_add_participant (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_chat_del_participant (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_set_msg_id (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_delete (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_message_encr_new (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_msg_update (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_binlog_reset_authorization (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_contacts_blocked (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x1c138d15: return skip_constructor_contacts_blocked (T); + case 0x900802a1: return skip_constructor_contacts_blocked_slice (T); + default: return -1; + } +} +int skip_type_bare_contacts_blocked (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contacts_blocked (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contacts_blocked_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_contacts_contacts (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb74ba9d2: return skip_constructor_contacts_contacts_not_modified (T); + case 0x6f8b8cb2: return skip_constructor_contacts_contacts (T); + default: return -1; + } +} +int skip_type_bare_contacts_contacts (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_contacts_contacts (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_contacts_found (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x0566000e: return skip_constructor_contacts_found (T); + default: return -1; + } +} +int skip_type_bare_contacts_found (struct paramed_type *T) { + if (skip_constructor_contacts_found (T) >= 0) { return 0; } + return -1; +} +int skip_type_contacts_imported_contacts (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xad524315: return skip_constructor_contacts_imported_contacts (T); + default: return -1; + } +} +int skip_type_bare_contacts_imported_contacts (struct paramed_type *T) { + if (skip_constructor_contacts_imported_contacts (T) >= 0) { return 0; } + return -1; +} +int skip_type_contacts_link (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3ace484c: return skip_constructor_contacts_link (T); + default: return -1; + } +} +int skip_type_bare_contacts_link (struct paramed_type *T) { + if (skip_constructor_contacts_link (T) >= 0) { return 0; } + return -1; +} +int skip_type_contacts_suggested (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5649dcc5: return skip_constructor_contacts_suggested (T); + default: return -1; + } +} +int skip_type_bare_contacts_suggested (struct paramed_type *T) { + if (skip_constructor_contacts_suggested (T) >= 0) { return 0; } + return -1; +} +int skip_type_geochats_located (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x48feb267: return skip_constructor_geochats_located (T); + default: return -1; + } +} +int skip_type_bare_geochats_located (struct paramed_type *T) { + if (skip_constructor_geochats_located (T) >= 0) { return 0; } + return -1; +} +int skip_type_geochats_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xd1526db1: return skip_constructor_geochats_messages (T); + case 0xbc5863e8: return skip_constructor_geochats_messages_slice (T); + default: return -1; + } +} +int skip_type_bare_geochats_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_geochats_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_geochats_messages_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_geochats_stated_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x17b1578b: return skip_constructor_geochats_stated_message (T); + default: return -1; + } +} +int skip_type_bare_geochats_stated_message (struct paramed_type *T) { + if (skip_constructor_geochats_stated_message (T) >= 0) { return 0; } + return -1; +} +int skip_type_help_app_update (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x8987f311: return skip_constructor_help_app_update (T); + case 0xc45a6536: return skip_constructor_help_no_app_update (T); + default: return -1; + } +} +int skip_type_bare_help_app_update (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_help_app_update (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_help_no_app_update (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_help_invite_text (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x18cb9f78: return skip_constructor_help_invite_text (T); + default: return -1; + } +} +int skip_type_bare_help_invite_text (struct paramed_type *T) { + if (skip_constructor_help_invite_text (T) >= 0) { return 0; } + return -1; +} +int skip_type_help_support (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x17c6b5f6: return skip_constructor_help_support (T); + default: return -1; + } +} +int skip_type_bare_help_support (struct paramed_type *T) { + if (skip_constructor_help_support (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_affected_history (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb45c69d1: return skip_constructor_messages_affected_history (T); + default: return -1; + } +} +int skip_type_bare_messages_affected_history (struct paramed_type *T) { + if (skip_constructor_messages_affected_history (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_affected_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x84d19185: return skip_constructor_messages_affected_messages (T); + default: return -1; + } +} +int skip_type_bare_messages_affected_messages (struct paramed_type *T) { + if (skip_constructor_messages_affected_messages (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_all_stickers (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xe86602c3: return skip_constructor_messages_all_stickers_not_modified (T); + case 0x5ce352ec: return skip_constructor_messages_all_stickers (T); + default: return -1; + } +} +int skip_type_bare_messages_all_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_all_stickers (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_chat_full (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xe5d7d19c: return skip_constructor_messages_chat_full (T); + default: return -1; + } +} +int skip_type_bare_messages_chat_full (struct paramed_type *T) { + if (skip_constructor_messages_chat_full (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_chats (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x64ff9fd5: return skip_constructor_messages_chats (T); + default: return -1; + } +} +int skip_type_bare_messages_chats (struct paramed_type *T) { + if (skip_constructor_messages_chats (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_dh_config (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xc0e24635: return skip_constructor_messages_dh_config_not_modified (T); + case 0x2c221edd: return skip_constructor_messages_dh_config (T); + default: return -1; + } +} +int skip_type_bare_messages_dh_config (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_dh_config (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_dialogs (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x15ba6c40: return skip_constructor_messages_dialogs (T); + case 0x71e094f3: return skip_constructor_messages_dialogs_slice (T); + default: return -1; + } +} +int skip_type_bare_messages_dialogs (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_dialogs (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_dialogs_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x3f4e0648: return skip_constructor_messages_message_empty (T); + default: return -1; + } +} +int skip_type_bare_messages_message (struct paramed_type *T) { + if (skip_constructor_messages_message_empty (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_messages (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x8c718e87: return skip_constructor_messages_messages (T); + case 0x0b446ae3: return skip_constructor_messages_messages_slice (T); + default: return -1; + } +} +int skip_type_bare_messages_messages (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_messages (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_messages_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_sent_encrypted_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x560f8935: return skip_constructor_messages_sent_encrypted_message (T); + case 0x9493ff32: return skip_constructor_messages_sent_encrypted_file (T); + default: return -1; + } +} +int skip_type_bare_messages_sent_encrypted_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_sent_message (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x4c3d47f3: return skip_constructor_messages_sent_message (T); + case 0x35a1a663: return skip_constructor_messages_sent_message_link (T); + default: return -1; + } +} +int skip_type_bare_messages_sent_message (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_sent_message (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_sent_message_link (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_messages_sticker_set (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xb60a24a6: return skip_constructor_messages_sticker_set (T); + default: return -1; + } +} +int skip_type_bare_messages_sticker_set (struct paramed_type *T) { + if (skip_constructor_messages_sticker_set (T) >= 0) { return 0; } + return -1; +} +int skip_type_messages_stickers (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xf1749a22: return skip_constructor_messages_stickers_not_modified (T); + case 0x8a8ecd32: return skip_constructor_messages_stickers (T); + default: return -1; + } +} +int skip_type_bare_messages_stickers (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_messages_stickers_not_modified (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_messages_stickers (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_photos_photo (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x20212ca8: return skip_constructor_photos_photo (T); + default: return -1; + } +} +int skip_type_bare_photos_photo (struct paramed_type *T) { + if (skip_constructor_photos_photo (T) >= 0) { return 0; } + return -1; +} +int skip_type_photos_photos (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x8dca6aa5: return skip_constructor_photos_photos (T); + case 0x15051f54: return skip_constructor_photos_photos_slice (T); + default: return -1; + } +} +int skip_type_bare_photos_photos (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_photos_photos (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_photos_photos_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_storage_file_type (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xaa963b05: return skip_constructor_storage_file_unknown (T); + case 0x007efe0e: return skip_constructor_storage_file_jpeg (T); + case 0xcae1aadf: return skip_constructor_storage_file_gif (T); + case 0x0a4f63c0: return skip_constructor_storage_file_png (T); + case 0xae1e508d: return skip_constructor_storage_file_pdf (T); + case 0x528a0677: return skip_constructor_storage_file_mp3 (T); + case 0x4b09ebbc: return skip_constructor_storage_file_mov (T); + case 0x40bc6f52: return skip_constructor_storage_file_partial (T); + case 0xb3cea0e4: return skip_constructor_storage_file_mp4 (T); + case 0x1081464c: return skip_constructor_storage_file_webp (T); + default: return -1; + } +} +int skip_type_bare_storage_file_type (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_storage_file_unknown (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_jpeg (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_gif (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_png (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_pdf (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mp3 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mov (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_partial (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_mp4 (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_storage_file_webp (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_updates_difference (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x5d75a138: return skip_constructor_updates_difference_empty (T); + case 0x00f49ca0: return skip_constructor_updates_difference (T); + case 0xa8fb1981: return skip_constructor_updates_difference_slice (T); + default: return -1; + } +} +int skip_type_bare_updates_difference (struct paramed_type *T) { + int *save_in_ptr = in_ptr; + if (skip_constructor_updates_difference_empty (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_difference (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + if (skip_constructor_updates_difference_slice (T) >= 0) { return 0; } + in_ptr = save_in_ptr; + return -1; +} +int skip_type_updates_state (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0xa56c2a3e: return skip_constructor_updates_state (T); + default: return -1; + } +} +int skip_type_bare_updates_state (struct paramed_type *T) { + if (skip_constructor_updates_state (T) >= 0) { return 0; } + return -1; +} +int skip_type_upload_file (struct paramed_type *T) { + if (in_remaining () < 4) { return -1;} + int magic = fetch_int (); + switch (magic) { + case 0x096a18d5: return skip_constructor_upload_file (T); + default: return -1; + } +} +int skip_type_bare_upload_file (struct paramed_type *T) { + if (skip_constructor_upload_file (T) >= 0) { return 0; } + return -1; +} +int skip_type_any (struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return skip_type_account_days_t_t_l (T); + case 0x472f5020: return skip_type_bare_account_days_t_t_l (T); + case 0x9fc5ec4e: return skip_type_audio (T); + case 0x603a13b1: return skip_type_bare_audio (T); + case 0x7bf2e6f6: return skip_type_authorization (T); + case 0x840d1909: return skip_type_bare_authorization (T); + case 0x250be282: return skip_type_bool (T); + case 0xdaf41d7d: return skip_type_bare_bool (T); + case 0x75e7ea6c: return skip_type_bot_command (T); + case 0x8a181593: return skip_type_bare_bot_command (T); + case 0xb2e16f93: return skip_type_bot_info (T); + case 0x4d1e906c: return skip_type_bare_bot_info (T); + case 0x0ee1379f: return skip_type_bytes (T); + case 0xf11ec860: return skip_type_bare_bytes (T); + case 0x7bd865dc: return skip_type_chat (T); + case 0x84279a23: return skip_type_bare_chat (T); + case 0x2e02a614: return skip_type_chat_full (T); + case 0xd1fd59eb: return skip_type_bare_chat_full (T); + case 0x94f910b1: return skip_type_chat_invite (T); + case 0x6b06ef4e: return skip_type_bare_chat_invite (T); + case 0x3631cf4c: return skip_type_chat_located (T); + case 0xc9ce30b3: return skip_type_bare_chat_located (T); + case 0xc8d7493e: return skip_type_chat_participant (T); + case 0x3728b6c1: return skip_type_bare_chat_participant (T); + case 0x77930f9f: return skip_type_chat_participants (T); + case 0x886cf060: return skip_type_bare_chat_participants (T); + case 0x56922676: return skip_type_chat_photo (T); + case 0xa96dd989: return skip_type_bare_chat_photo (T); + case 0x6643b654: return skip_type_client_d_h_inner_data (T); + case 0x99bc49ab: return skip_type_bare_client_d_h_inner_data (T); + case 0x4e32b894: return skip_type_config (T); + case 0xb1cd476b: return skip_type_bare_config (T); + case 0xf911c994: return skip_type_contact (T); + case 0x06ee366b: return skip_type_bare_contact (T); + case 0x561bc879: return skip_type_contact_blocked (T); + case 0xa9e43786: return skip_type_bare_contact_blocked (T); + case 0xea879f95: return skip_type_contact_found (T); + case 0x1578606a: return skip_type_bare_contact_found (T); + case 0x522fbc63: return skip_type_contact_link (T); + case 0xadd0439c: return skip_type_bare_contact_link (T); + case 0xd3680c61: return skip_type_contact_status (T); + case 0x2c97f39e: return skip_type_bare_contact_status (T); + case 0x3de191a1: return skip_type_contact_suggested (T); + case 0xc21e6e5e: return skip_type_bare_contact_suggested (T); + case 0x2b1a62f0: return skip_type_dc_option (T); + case 0xd4e59d0f: return skip_type_bare_dc_option (T); + case 0x535b7918: return skip_type_decrypted_message (T); + case 0xaca486e7: return skip_type_bare_decrypted_message (T); + case 0x4e0eefde: return skip_type_decrypted_message_action (T); + case 0xb1f11021: return skip_type_bare_decrypted_message_action (T); + case 0x1be31789: return skip_type_decrypted_message_layer (T); + case 0xe41ce876: return skip_type_bare_decrypted_message_layer (T); + case 0x34e0d674: return skip_type_decrypted_message_media (T); + case 0xcb1f298b: return skip_type_bare_decrypted_message_media (T); + case 0xc1dd804a: return skip_type_dialog (T); + case 0x3e227fb5: return skip_type_bare_dialog (T); + case 0xae636f24: return skip_type_disabled_feature (T); + case 0x519c90db: return skip_type_bare_disabled_feature (T); + case 0x51a73418: return skip_type_document (T); + case 0xae58cbe7: return skip_type_bare_document (T); + case 0x97c637a3: return skip_type_document_attribute (T); + case 0x6839c85c: return skip_type_bare_document_attribute (T); + case 0x2210c154: return skip_type_double (T); + case 0xddef3eab: return skip_type_bare_double (T); + case 0xb1718213: return skip_type_encrypted_chat (T); + case 0x4e8e7dec: return skip_type_bare_encrypted_chat (T); + case 0x886fd032: return skip_type_encrypted_file (T); + case 0x77902fcd: return skip_type_bare_encrypted_file (T); + case 0xce6b8a1e: return skip_type_encrypted_message (T); + case 0x319475e1: return skip_type_bare_encrypted_message (T); + case 0xc4b9f9bb: return skip_type_error (T); + case 0x3b460644: return skip_type_bare_error (T); + case 0x95f132d5: return skip_type_exported_chat_invite (T); + case 0x6a0ecd2a: return skip_type_bare_exported_chat_invite (T); + case 0x2f8ffb30: return skip_type_file_location (T); + case 0xd07004cf: return skip_type_bare_file_location (T); + case 0xf67b4034: return skip_type_geo_chat_message (T); + case 0x0984bfcb: return skip_type_bare_geo_chat_message (T); + case 0x315e0a53: return skip_type_geo_point (T); + case 0xcea1f5ac: return skip_type_bare_geo_point (T); + case 0xd0028438: return skip_type_imported_contact (T); + case 0x2ffd7bc7: return skip_type_bare_imported_contact (T); + case 0x770656a8: return skip_type_input_app_event (T); + case 0x88f9a957: return skip_type_bare_input_app_event (T); + case 0xae8e9c7b: return skip_type_input_audio (T); + case 0x51716384: return skip_type_bare_input_audio (T); + case 0x3a60776d: return skip_type_input_chat_photo (T); + case 0xc59f8892: return skip_type_bare_input_chat_photo (T); + case 0xf392b7f4: return skip_type_input_contact (T); + case 0x0c6d480b: return skip_type_bare_input_contact (T); + case 0x6a8963fc: return skip_type_input_document (T); + case 0x95769c03: return skip_type_bare_input_document (T); + case 0xf141b5e1: return skip_type_input_encrypted_chat (T); + case 0x0ebe4a1e: return skip_type_bare_input_encrypted_chat (T); + case 0x0b5c064f: return skip_type_input_encrypted_file (T); + case 0xf4a3f9b0: return skip_type_bare_input_encrypted_file (T); + case 0x0f60f9ca: return skip_type_input_file (T); + case 0xf09f0635: return skip_type_bare_input_file (T); + case 0xe6daa38b: return skip_type_input_file_location (T); + case 0x19255c74: return skip_type_bare_input_file_location (T); + case 0x74d456fa: return skip_type_input_geo_chat (T); + case 0x8b2ba905: return skip_type_bare_input_geo_chat (T); + case 0x17768f1f: return skip_type_input_geo_point (T); + case 0xe88970e0: return skip_type_bare_input_geo_point (T); + case 0xb32c91dd: return skip_type_input_media (T); + case 0x4cd36e22: return skip_type_bare_input_media (T); + case 0x02b6911b: return skip_type_input_notify_peer (T); + case 0xfd496ee4: return skip_type_bare_input_notify_peer (T); + case 0x9e67268d: return skip_type_input_peer (T); + case 0x6198d972: return skip_type_bare_input_peer (T); + case 0x185a48ac: return skip_type_input_peer_notify_events (T); + case 0xe7a5b753: return skip_type_bare_input_peer_notify_events (T); + case 0x46a2ce98: return skip_type_input_peer_notify_settings (T); + case 0xb95d3167: return skip_type_bare_input_peer_notify_settings (T); + case 0xe74279c9: return skip_type_input_photo (T); + case 0x18bd8636: return skip_type_bare_input_photo (T); + case 0x7477e321: return skip_type_input_photo_crop (T); + case 0x8b881cde: return skip_type_bare_input_photo_crop (T); + case 0x4f96cb18: return skip_type_input_privacy_key (T); + case 0xb06934e7: return skip_type_bare_input_privacy_key (T); + case 0x4b815163: return skip_type_input_privacy_rule (T); + case 0xb47eae9c: return skip_type_bare_input_privacy_rule (T); + case 0xe44d415c: return skip_type_input_sticker_set (T); + case 0x1bb2bea3: return skip_type_bare_input_sticker_set (T); + case 0xadfe0c6a: return skip_type_input_user (T); + case 0x5201f395: return skip_type_bare_input_user (T); + case 0xbb5f7a27: return skip_type_input_video (T); + case 0x44a085d8: return skip_type_bare_input_video (T); + case 0xa8509bda: return skip_type_int (T); + case 0x57af6425: return skip_type_bare_int (T); + case 0x7d36c439: return skip_type_int128 (T); + case 0x82c93bc6: return skip_type_bare_int128 (T); + case 0xf2c798b3: return skip_type_int256 (T); + case 0x0d38674c: return skip_type_bare_int256 (T); + case 0xa2fa4880: return skip_type_keyboard_button (T); + case 0x5d05b77f: return skip_type_bare_keyboard_button (T); + case 0x77608b83: return skip_type_keyboard_button_row (T); + case 0x889f747c: return skip_type_bare_keyboard_button_row (T); + case 0x22076cba: return skip_type_long (T); + case 0xddf89345: return skip_type_bare_long (T); + case 0x5d652a7f: return skip_type_message (T); + case 0xa29ad580: return skip_type_bare_message (T); + case 0x383415fa: return skip_type_message_action (T); + case 0xc7cbea05: return skip_type_bare_message_action (T); + case 0x95f2471a: return skip_type_message_media (T); + case 0x6a0db8e5: return skip_type_bare_message_media (T); + case 0x80895ae0: return skip_type_messages_filter (T); + case 0x7f76a51f: return skip_type_bare_messages_filter (T); + case 0x8e1a1775: return skip_type_nearest_dc (T); + case 0x71e5e88a: return skip_type_bare_nearest_dc (T); + case 0x9fcb8237: return skip_type_notify_peer (T); + case 0x60347dc8: return skip_type_bare_notify_peer (T); + case 0x56730bcc: return skip_type_null (T); + case 0xa98cf433: return skip_type_bare_null (T); + case 0xbfa3de38: return skip_type_p_q_inner_data (T); + case 0x405c21c7: return skip_type_bare_p_q_inner_data (T); + case 0x276159d6: return skip_type_peer (T); + case 0xd89ea629: return skip_type_bare_peer (T); + case 0xc0c8d13b: return skip_type_peer_notify_events (T); + case 0x3f372ec4: return skip_type_bare_peer_notify_events (T); + case 0xfdf894fc: return skip_type_peer_notify_settings (T); + case 0x02076b03: return skip_type_bare_peer_notify_settings (T); + case 0xc207550a: return skip_type_photo (T); + case 0x3df8aaf5: return skip_type_bare_photo (T); + case 0x900f60dd: return skip_type_photo_size (T); + case 0x6ff09f22: return skip_type_bare_photo_size (T); + case 0xbc2eab30: return skip_type_privacy_key (T); + case 0x43d154cf: return skip_type_bare_privacy_key (T); + case 0xa8638aec: return skip_type_privacy_rule (T); + case 0x579c7513: return skip_type_bare_privacy_rule (T); + case 0xa384b779: return skip_type_received_notify_message (T); + case 0x5c7b4886: return skip_type_bare_received_notify_message (T); + case 0x612ca4a9: return skip_type_reply_markup (T); + case 0x9ed35b56: return skip_type_bare_reply_markup (T); + case 0x05162463: return skip_type_res_p_q (T); + case 0xfae9db9c: return skip_type_bare_res_p_q (T); + case 0x70541c7e: return skip_type_send_message_action (T); + case 0x8fabe381: return skip_type_bare_send_message_action (T); + case 0xa9230301: return skip_type_server_d_h_params (T); + case 0x56dcfcfe: return skip_type_bare_server_d_h_params (T); + case 0xb5890dba: return skip_type_server_d_h_inner_data (T); + case 0x4a76f245: return skip_type_bare_server_d_h_inner_data (T); + case 0xdb8a468f: return skip_type_set_client_d_h_params_answer (T); + case 0x2475b970: return skip_type_bare_set_client_d_h_params_answer (T); + case 0x12b299d4: return skip_type_sticker_pack (T); + case 0xed4d662b: return skip_type_bare_sticker_pack (T); + case 0xa7a43b17: return skip_type_sticker_set (T); + case 0x585bc4e8: return skip_type_bare_sticker_set (T); + case 0xb5286e24: return skip_type_string (T); + case 0x4ad791db: return skip_type_bare_string (T); + case 0x2e02b27e: return skip_type_update (T); + case 0xd1fd4d81: return skip_type_bare_update (T); + case 0x22499d27: return skip_type_updates (T); + case 0xddb662d8: return skip_type_bare_updates (T); + case 0x02e6c0c8: return skip_type_user (T); + case 0xfd193f37: return skip_type_bare_user (T); + case 0x5a89ac5b: return skip_type_user_full (T); + case 0xa57653a4: return skip_type_bare_user_full (T); + case 0x9a486229: return skip_type_user_profile_photo (T); + case 0x65b79dd6: return skip_type_bare_user_profile_photo (T); + case 0x76de9570: return skip_type_user_status (T); + case 0x89216a8f: return skip_type_bare_user_status (T); + case 0x1cb5c415: return skip_type_vector (T); + case 0xe34a3bea: return skip_type_bare_vector (T); + case 0x1716b174: return skip_type_video (T); + case 0xe8e94e8b: return skip_type_bare_video (T); + case 0xafa14973: return skip_type_wall_paper (T); + case 0x505eb68c: return skip_type_bare_wall_paper (T); + case 0x8d8c0d41: return skip_type_web_page (T); + case 0x7273f2be: return skip_type_bare_web_page (T); + case 0x1250abde: return skip_type_account_authorizations (T); + case 0xedaf5421: return skip_type_bare_account_authorizations (T); + case 0xeac2a804: return skip_type_account_password (T); + case 0x153d57fb: return skip_type_bare_account_password (T); + case 0xbcfc532c: return skip_type_account_password_input_settings (T); + case 0x4303acd3: return skip_type_bare_account_password_input_settings (T); + case 0xb7b72ab3: return skip_type_account_password_settings (T); + case 0x4848d54c: return skip_type_bare_account_password_settings (T); + case 0x554abb6f: return skip_type_account_privacy_rules (T); + case 0xaab54490: return skip_type_bare_account_privacy_rules (T); + case 0xa4f58c4c: return skip_type_account_sent_change_phone_code (T); + case 0x5b0a73b3: return skip_type_bare_account_sent_change_phone_code (T); + case 0xff036af1: return skip_type_auth_authorization (T); + case 0x00fc950e: return skip_type_bare_auth_authorization (T); + case 0x811ea28e: return skip_type_auth_checked_phone (T); + case 0x7ee15d71: return skip_type_bare_auth_checked_phone (T); + case 0xdf969c2d: return skip_type_auth_exported_authorization (T); + case 0x206963d2: return skip_type_bare_auth_exported_authorization (T); + case 0x137948a5: return skip_type_auth_password_recovery (T); + case 0xec86b75a: return skip_type_bare_auth_password_recovery (T); + case 0x0cc8bc16: return skip_type_auth_sent_code (T); + case 0xf33743e9: return skip_type_bare_auth_sent_code (T); + case 0x0377168f: return skip_type_binlog_encr_key (T); + case 0xfc88e970: return skip_type_bare_binlog_encr_key (T); + case 0x66ff03a6: return skip_type_binlog_update (T); + case 0x9900fc59: return skip_type_bare_binlog_update (T); + case 0x8c1b8fb4: return skip_type_contacts_blocked (T); + case 0x73e4704b: return skip_type_bare_contacts_blocked (T); + case 0xd8c02560: return skip_type_contacts_contacts (T); + case 0x273fda9f: return skip_type_bare_contacts_contacts (T); + case 0x0566000e: return skip_type_contacts_found (T); + case 0xfa99fff1: return skip_type_bare_contacts_found (T); + case 0xad524315: return skip_type_contacts_imported_contacts (T); + case 0x52adbcea: return skip_type_bare_contacts_imported_contacts (T); + case 0x3ace484c: return skip_type_contacts_link (T); + case 0xc531b7b3: return skip_type_bare_contacts_link (T); + case 0x5649dcc5: return skip_type_contacts_suggested (T); + case 0xa9b6233a: return skip_type_bare_contacts_suggested (T); + case 0x48feb267: return skip_type_geochats_located (T); + case 0xb7014d98: return skip_type_bare_geochats_located (T); + case 0x6d0a0e59: return skip_type_geochats_messages (T); + case 0x92f5f1a6: return skip_type_bare_geochats_messages (T); + case 0x17b1578b: return skip_type_geochats_stated_message (T); + case 0xe84ea874: return skip_type_bare_geochats_stated_message (T); + case 0x4ddd9627: return skip_type_help_app_update (T); + case 0xb22269d8: return skip_type_bare_help_app_update (T); + case 0x18cb9f78: return skip_type_help_invite_text (T); + case 0xe7346087: return skip_type_bare_help_invite_text (T); + case 0x17c6b5f6: return skip_type_help_support (T); + case 0xe8394a09: return skip_type_bare_help_support (T); + case 0xb45c69d1: return skip_type_messages_affected_history (T); + case 0x4ba3962e: return skip_type_bare_messages_affected_history (T); + case 0x84d19185: return skip_type_messages_affected_messages (T); + case 0x7b2e6e7a: return skip_type_bare_messages_affected_messages (T); + case 0xb485502f: return skip_type_messages_all_stickers (T); + case 0x4b7aafd0: return skip_type_bare_messages_all_stickers (T); + case 0xe5d7d19c: return skip_type_messages_chat_full (T); + case 0x1a282e63: return skip_type_bare_messages_chat_full (T); + case 0x64ff9fd5: return skip_type_messages_chats (T); + case 0x9b00602a: return skip_type_bare_messages_chats (T); + case 0xecc058e8: return skip_type_messages_dh_config (T); + case 0x133fa717: return skip_type_bare_messages_dh_config (T); + case 0x645af8b3: return skip_type_messages_dialogs (T); + case 0x9ba5074c: return skip_type_bare_messages_dialogs (T); + case 0x3f4e0648: return skip_type_messages_message (T); + case 0xc0b1f9b7: return skip_type_bare_messages_message (T); + case 0x8735e464: return skip_type_messages_messages (T); + case 0x78ca1b9b: return skip_type_bare_messages_messages (T); + case 0xc29c7607: return skip_type_messages_sent_encrypted_message (T); + case 0x3d6389f8: return skip_type_bare_messages_sent_encrypted_message (T); + case 0x799ce190: return skip_type_messages_sent_message (T); + case 0x86631e6f: return skip_type_bare_messages_sent_message (T); + case 0xb60a24a6: return skip_type_messages_sticker_set (T); + case 0x49f5db59: return skip_type_bare_messages_sticker_set (T); + case 0x7bfa5710: return skip_type_messages_stickers (T); + case 0x8405a8ef: return skip_type_bare_messages_stickers (T); + case 0x20212ca8: return skip_type_photos_photo (T); + case 0xdfded357: return skip_type_bare_photos_photo (T); + case 0x98cf75f1: return skip_type_photos_photos (T); + case 0x67308a0e: return skip_type_bare_photos_photos (T); + case 0x3e2838a8: return skip_type_storage_file_type (T); + case 0xc1d7c757: return skip_type_bare_storage_file_type (T); + case 0xf57a2419: return skip_type_updates_difference (T); + case 0x0a85dbe6: return skip_type_bare_updates_difference (T); + case 0xa56c2a3e: return skip_type_updates_state (T); + case 0x5a93d5c1: return skip_type_bare_updates_state (T); + case 0x096a18d5: return skip_type_upload_file (T); + case 0xf695e72a: return skip_type_bare_upload_file (T); + default: return -1; } +} diff --git a/libs/tgl/src/auto/auto-skip.h b/libs/tgl/src/auto/auto-skip.h new file mode 100644 index 0000000000..f26a800b1a --- /dev/null +++ b/libs/tgl/src/auto/auto-skip.h @@ -0,0 +1,714 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +#include +int skip_constructor_account_days_t_t_l (struct paramed_type *T); +int skip_constructor_audio_empty (struct paramed_type *T); +int skip_constructor_audio (struct paramed_type *T); +int skip_constructor_authorization (struct paramed_type *T); +int skip_constructor_bool_false (struct paramed_type *T); +int skip_constructor_bool_true (struct paramed_type *T); +int skip_constructor_bot_command (struct paramed_type *T); +int skip_constructor_bot_command_old (struct paramed_type *T); +int skip_constructor_bot_info_empty (struct paramed_type *T); +int skip_constructor_bot_info (struct paramed_type *T); +int skip_constructor_bytes (struct paramed_type *T); +int skip_constructor_chat_empty (struct paramed_type *T); +int skip_constructor_chat (struct paramed_type *T); +int skip_constructor_chat_forbidden (struct paramed_type *T); +int skip_constructor_geo_chat (struct paramed_type *T); +int skip_constructor_chat_full (struct paramed_type *T); +int skip_constructor_chat_invite_already (struct paramed_type *T); +int skip_constructor_chat_invite (struct paramed_type *T); +int skip_constructor_chat_located (struct paramed_type *T); +int skip_constructor_chat_participant (struct paramed_type *T); +int skip_constructor_chat_participants_forbidden (struct paramed_type *T); +int skip_constructor_chat_participants (struct paramed_type *T); +int skip_constructor_chat_photo_empty (struct paramed_type *T); +int skip_constructor_chat_photo (struct paramed_type *T); +int skip_constructor_client_d_h_inner_data (struct paramed_type *T); +int skip_constructor_config (struct paramed_type *T); +int skip_constructor_contact (struct paramed_type *T); +int skip_constructor_contact_blocked (struct paramed_type *T); +int skip_constructor_contact_found (struct paramed_type *T); +int skip_constructor_contact_link_unknown (struct paramed_type *T); +int skip_constructor_contact_link_none (struct paramed_type *T); +int skip_constructor_contact_link_has_phone (struct paramed_type *T); +int skip_constructor_contact_link_contact (struct paramed_type *T); +int skip_constructor_contact_status (struct paramed_type *T); +int skip_constructor_contact_suggested (struct paramed_type *T); +int skip_constructor_dc_option_l28 (struct paramed_type *T); +int skip_constructor_dc_option (struct paramed_type *T); +int skip_constructor_decrypted_message (struct paramed_type *T); +int skip_constructor_decrypted_message_service (struct paramed_type *T); +int skip_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T); +int skip_constructor_decrypted_message_action_read_messages (struct paramed_type *T); +int skip_constructor_decrypted_message_action_delete_messages (struct paramed_type *T); +int skip_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T); +int skip_constructor_decrypted_message_action_flush_history (struct paramed_type *T); +int skip_constructor_decrypted_message_action_resend (struct paramed_type *T); +int skip_constructor_decrypted_message_action_notify_layer (struct paramed_type *T); +int skip_constructor_decrypted_message_action_typing (struct paramed_type *T); +int skip_constructor_decrypted_message_action_request_key (struct paramed_type *T); +int skip_constructor_decrypted_message_action_accept_key (struct paramed_type *T); +int skip_constructor_decrypted_message_action_abort_key (struct paramed_type *T); +int skip_constructor_decrypted_message_action_commit_key (struct paramed_type *T); +int skip_constructor_decrypted_message_action_noop (struct paramed_type *T); +int skip_constructor_decrypted_message_layer (struct paramed_type *T); +int skip_constructor_decrypted_message_media_empty (struct paramed_type *T); +int skip_constructor_decrypted_message_media_photo (struct paramed_type *T); +int skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T); +int skip_constructor_decrypted_message_media_contact (struct paramed_type *T); +int skip_constructor_decrypted_message_media_document (struct paramed_type *T); +int skip_constructor_decrypted_message_media_video (struct paramed_type *T); +int skip_constructor_decrypted_message_media_audio (struct paramed_type *T); +int skip_constructor_decrypted_message_media_external_document (struct paramed_type *T); +int skip_constructor_decrypted_message_media_video_l12 (struct paramed_type *T); +int skip_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T); +int skip_constructor_dialog (struct paramed_type *T); +int skip_constructor_disabled_feature (struct paramed_type *T); +int skip_constructor_document_empty (struct paramed_type *T); +int skip_constructor_document (struct paramed_type *T); +int skip_constructor_document_l19 (struct paramed_type *T); +int skip_constructor_document_attribute_image_size (struct paramed_type *T); +int skip_constructor_document_attribute_animated (struct paramed_type *T); +int skip_constructor_document_attribute_sticker_l28 (struct paramed_type *T); +int skip_constructor_document_attribute_sticker (struct paramed_type *T); +int skip_constructor_document_attribute_video (struct paramed_type *T); +int skip_constructor_document_attribute_audio (struct paramed_type *T); +int skip_constructor_document_attribute_filename (struct paramed_type *T); +int skip_constructor_double (struct paramed_type *T); +int skip_constructor_encrypted_chat_empty (struct paramed_type *T); +int skip_constructor_encrypted_chat_waiting (struct paramed_type *T); +int skip_constructor_encrypted_chat_requested (struct paramed_type *T); +int skip_constructor_encrypted_chat (struct paramed_type *T); +int skip_constructor_encrypted_chat_discarded (struct paramed_type *T); +int skip_constructor_encrypted_file_empty (struct paramed_type *T); +int skip_constructor_encrypted_file (struct paramed_type *T); +int skip_constructor_encrypted_message (struct paramed_type *T); +int skip_constructor_encrypted_message_service (struct paramed_type *T); +int skip_constructor_error (struct paramed_type *T); +int skip_constructor_chat_invite_empty (struct paramed_type *T); +int skip_constructor_chat_invite_exported (struct paramed_type *T); +int skip_constructor_file_location_unavailable (struct paramed_type *T); +int skip_constructor_file_location (struct paramed_type *T); +int skip_constructor_geo_chat_message_empty (struct paramed_type *T); +int skip_constructor_geo_chat_message (struct paramed_type *T); +int skip_constructor_geo_chat_message_service (struct paramed_type *T); +int skip_constructor_geo_point_empty (struct paramed_type *T); +int skip_constructor_geo_point (struct paramed_type *T); +int skip_constructor_imported_contact (struct paramed_type *T); +int skip_constructor_input_app_event (struct paramed_type *T); +int skip_constructor_input_audio_empty (struct paramed_type *T); +int skip_constructor_input_audio (struct paramed_type *T); +int skip_constructor_input_chat_photo_empty (struct paramed_type *T); +int skip_constructor_input_chat_uploaded_photo (struct paramed_type *T); +int skip_constructor_input_chat_photo (struct paramed_type *T); +int skip_constructor_input_phone_contact (struct paramed_type *T); +int skip_constructor_input_document_empty (struct paramed_type *T); +int skip_constructor_input_document (struct paramed_type *T); +int skip_constructor_input_encrypted_chat (struct paramed_type *T); +int skip_constructor_input_encrypted_file_empty (struct paramed_type *T); +int skip_constructor_input_encrypted_file_uploaded (struct paramed_type *T); +int skip_constructor_input_encrypted_file (struct paramed_type *T); +int skip_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T); +int skip_constructor_input_file (struct paramed_type *T); +int skip_constructor_input_file_big (struct paramed_type *T); +int skip_constructor_input_file_location (struct paramed_type *T); +int skip_constructor_input_video_file_location (struct paramed_type *T); +int skip_constructor_input_encrypted_file_location (struct paramed_type *T); +int skip_constructor_input_audio_file_location (struct paramed_type *T); +int skip_constructor_input_document_file_location (struct paramed_type *T); +int skip_constructor_input_geo_chat (struct paramed_type *T); +int skip_constructor_input_geo_point_empty (struct paramed_type *T); +int skip_constructor_input_geo_point (struct paramed_type *T); +int skip_constructor_input_media_empty (struct paramed_type *T); +int skip_constructor_input_media_uploaded_photo (struct paramed_type *T); +int skip_constructor_input_media_photo (struct paramed_type *T); +int skip_constructor_input_media_geo_point (struct paramed_type *T); +int skip_constructor_input_media_contact (struct paramed_type *T); +int skip_constructor_input_media_uploaded_video (struct paramed_type *T); +int skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T); +int skip_constructor_input_media_video (struct paramed_type *T); +int skip_constructor_input_media_uploaded_audio (struct paramed_type *T); +int skip_constructor_input_media_audio (struct paramed_type *T); +int skip_constructor_input_media_uploaded_document (struct paramed_type *T); +int skip_constructor_input_media_uploaded_thumb_document (struct paramed_type *T); +int skip_constructor_input_media_document (struct paramed_type *T); +int skip_constructor_input_media_venue (struct paramed_type *T); +int skip_constructor_input_notify_peer (struct paramed_type *T); +int skip_constructor_input_notify_users (struct paramed_type *T); +int skip_constructor_input_notify_chats (struct paramed_type *T); +int skip_constructor_input_notify_all (struct paramed_type *T); +int skip_constructor_input_notify_geo_chat_peer (struct paramed_type *T); +int skip_constructor_input_peer_empty (struct paramed_type *T); +int skip_constructor_input_peer_self (struct paramed_type *T); +int skip_constructor_input_peer_contact (struct paramed_type *T); +int skip_constructor_input_peer_foreign (struct paramed_type *T); +int skip_constructor_input_peer_chat (struct paramed_type *T); +int skip_constructor_input_peer_notify_events_empty (struct paramed_type *T); +int skip_constructor_input_peer_notify_events_all (struct paramed_type *T); +int skip_constructor_input_peer_notify_settings (struct paramed_type *T); +int skip_constructor_input_photo_empty (struct paramed_type *T); +int skip_constructor_input_photo (struct paramed_type *T); +int skip_constructor_input_photo_crop_auto (struct paramed_type *T); +int skip_constructor_input_photo_crop (struct paramed_type *T); +int skip_constructor_input_privacy_key_status_timestamp (struct paramed_type *T); +int skip_constructor_input_privacy_value_allow_contacts (struct paramed_type *T); +int skip_constructor_input_privacy_value_allow_all (struct paramed_type *T); +int skip_constructor_input_privacy_value_allow_users (struct paramed_type *T); +int skip_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T); +int skip_constructor_input_privacy_value_disallow_all (struct paramed_type *T); +int skip_constructor_input_privacy_value_disallow_users (struct paramed_type *T); +int skip_constructor_input_sticker_set_empty (struct paramed_type *T); +int skip_constructor_input_sticker_set_i_d (struct paramed_type *T); +int skip_constructor_input_sticker_set_short_name (struct paramed_type *T); +int skip_constructor_input_user_empty (struct paramed_type *T); +int skip_constructor_input_user_self (struct paramed_type *T); +int skip_constructor_input_user_contact (struct paramed_type *T); +int skip_constructor_input_user_foreign (struct paramed_type *T); +int skip_constructor_input_video_empty (struct paramed_type *T); +int skip_constructor_input_video (struct paramed_type *T); +int skip_constructor_int (struct paramed_type *T); +int skip_constructor_int128 (struct paramed_type *T); +int skip_constructor_int256 (struct paramed_type *T); +int skip_constructor_keyboard_button (struct paramed_type *T); +int skip_constructor_keyboard_button_row (struct paramed_type *T); +int skip_constructor_long (struct paramed_type *T); +int skip_constructor_message_empty (struct paramed_type *T); +int skip_constructor_message (struct paramed_type *T); +int skip_constructor_message_service (struct paramed_type *T); +int skip_constructor_message_action_empty (struct paramed_type *T); +int skip_constructor_message_action_chat_create (struct paramed_type *T); +int skip_constructor_message_action_chat_edit_title (struct paramed_type *T); +int skip_constructor_message_action_chat_edit_photo (struct paramed_type *T); +int skip_constructor_message_action_chat_delete_photo (struct paramed_type *T); +int skip_constructor_message_action_chat_add_user (struct paramed_type *T); +int skip_constructor_message_action_chat_delete_user (struct paramed_type *T); +int skip_constructor_message_action_geo_chat_create (struct paramed_type *T); +int skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T); +int skip_constructor_message_action_chat_joined_by_link (struct paramed_type *T); +int skip_constructor_message_media_empty (struct paramed_type *T); +int skip_constructor_message_media_photo (struct paramed_type *T); +int skip_constructor_message_media_video (struct paramed_type *T); +int skip_constructor_message_media_geo (struct paramed_type *T); +int skip_constructor_message_media_contact (struct paramed_type *T); +int skip_constructor_message_media_unsupported (struct paramed_type *T); +int skip_constructor_message_media_document (struct paramed_type *T); +int skip_constructor_message_media_audio (struct paramed_type *T); +int skip_constructor_message_media_web_page (struct paramed_type *T); +int skip_constructor_message_media_venue (struct paramed_type *T); +int skip_constructor_message_media_photo_l27 (struct paramed_type *T); +int skip_constructor_message_media_video_l27 (struct paramed_type *T); +int skip_constructor_input_messages_filter_empty (struct paramed_type *T); +int skip_constructor_input_messages_filter_photos (struct paramed_type *T); +int skip_constructor_input_messages_filter_video (struct paramed_type *T); +int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T); +int skip_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T); +int skip_constructor_input_messages_filter_document (struct paramed_type *T); +int skip_constructor_input_messages_filter_audio (struct paramed_type *T); +int skip_constructor_nearest_dc (struct paramed_type *T); +int skip_constructor_notify_peer (struct paramed_type *T); +int skip_constructor_notify_users (struct paramed_type *T); +int skip_constructor_notify_chats (struct paramed_type *T); +int skip_constructor_notify_all (struct paramed_type *T); +int skip_constructor_null (struct paramed_type *T); +int skip_constructor_p_q_inner_data (struct paramed_type *T); +int skip_constructor_p_q_inner_data_temp (struct paramed_type *T); +int skip_constructor_peer_user (struct paramed_type *T); +int skip_constructor_peer_chat (struct paramed_type *T); +int skip_constructor_peer_notify_events_empty (struct paramed_type *T); +int skip_constructor_peer_notify_events_all (struct paramed_type *T); +int skip_constructor_peer_notify_settings_empty (struct paramed_type *T); +int skip_constructor_peer_notify_settings (struct paramed_type *T); +int skip_constructor_photo_empty (struct paramed_type *T); +int skip_constructor_photo (struct paramed_type *T); +int skip_constructor_photo_l27 (struct paramed_type *T); +int skip_constructor_photo_size_empty (struct paramed_type *T); +int skip_constructor_photo_size (struct paramed_type *T); +int skip_constructor_photo_cached_size (struct paramed_type *T); +int skip_constructor_privacy_key_status_timestamp (struct paramed_type *T); +int skip_constructor_privacy_value_allow_contacts (struct paramed_type *T); +int skip_constructor_privacy_value_allow_all (struct paramed_type *T); +int skip_constructor_privacy_value_allow_users (struct paramed_type *T); +int skip_constructor_privacy_value_disallow_contacts (struct paramed_type *T); +int skip_constructor_privacy_value_disallow_all (struct paramed_type *T); +int skip_constructor_privacy_value_disallow_users (struct paramed_type *T); +int skip_constructor_received_notify_message (struct paramed_type *T); +int skip_constructor_reply_keyboard_hide (struct paramed_type *T); +int skip_constructor_reply_keyboard_force_reply (struct paramed_type *T); +int skip_constructor_reply_keyboard_markup (struct paramed_type *T); +int skip_constructor_res_p_q (struct paramed_type *T); +int skip_constructor_send_message_typing_action (struct paramed_type *T); +int skip_constructor_send_message_cancel_action (struct paramed_type *T); +int skip_constructor_send_message_record_video_action (struct paramed_type *T); +int skip_constructor_send_message_upload_video_action_l27 (struct paramed_type *T); +int skip_constructor_send_message_upload_video_action (struct paramed_type *T); +int skip_constructor_send_message_record_audio_action (struct paramed_type *T); +int skip_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T); +int skip_constructor_send_message_upload_audio_action (struct paramed_type *T); +int skip_constructor_send_message_upload_photo_action (struct paramed_type *T); +int skip_constructor_send_message_upload_document_action_l27 (struct paramed_type *T); +int skip_constructor_send_message_upload_document_action (struct paramed_type *T); +int skip_constructor_send_message_geo_location_action (struct paramed_type *T); +int skip_constructor_send_message_choose_contact_action (struct paramed_type *T); +int skip_constructor_server_d_h_params_fail (struct paramed_type *T); +int skip_constructor_server_d_h_params_ok (struct paramed_type *T); +int skip_constructor_server_d_h_inner_data (struct paramed_type *T); +int skip_constructor_dh_gen_ok (struct paramed_type *T); +int skip_constructor_dh_gen_retry (struct paramed_type *T); +int skip_constructor_dh_gen_fail (struct paramed_type *T); +int skip_constructor_sticker_pack (struct paramed_type *T); +int skip_constructor_sticker_set (struct paramed_type *T); +int skip_constructor_string (struct paramed_type *T); +int skip_constructor_update_new_message (struct paramed_type *T); +int skip_constructor_update_message_i_d (struct paramed_type *T); +int skip_constructor_update_delete_messages (struct paramed_type *T); +int skip_constructor_update_user_typing (struct paramed_type *T); +int skip_constructor_update_chat_user_typing (struct paramed_type *T); +int skip_constructor_update_chat_participants (struct paramed_type *T); +int skip_constructor_update_user_status (struct paramed_type *T); +int skip_constructor_update_user_name (struct paramed_type *T); +int skip_constructor_update_user_photo (struct paramed_type *T); +int skip_constructor_update_contact_registered (struct paramed_type *T); +int skip_constructor_update_contact_link (struct paramed_type *T); +int skip_constructor_update_new_authorization (struct paramed_type *T); +int skip_constructor_update_new_geo_chat_message (struct paramed_type *T); +int skip_constructor_update_new_encrypted_message (struct paramed_type *T); +int skip_constructor_update_encrypted_chat_typing (struct paramed_type *T); +int skip_constructor_update_encryption (struct paramed_type *T); +int skip_constructor_update_encrypted_messages_read (struct paramed_type *T); +int skip_constructor_update_chat_participant_add (struct paramed_type *T); +int skip_constructor_update_chat_participant_delete (struct paramed_type *T); +int skip_constructor_update_dc_options (struct paramed_type *T); +int skip_constructor_update_user_blocked (struct paramed_type *T); +int skip_constructor_update_notify_settings (struct paramed_type *T); +int skip_constructor_update_service_notification (struct paramed_type *T); +int skip_constructor_update_privacy (struct paramed_type *T); +int skip_constructor_update_user_phone (struct paramed_type *T); +int skip_constructor_update_read_history_inbox (struct paramed_type *T); +int skip_constructor_update_read_history_outbox (struct paramed_type *T); +int skip_constructor_update_web_page (struct paramed_type *T); +int skip_constructor_update_read_messages_contents (struct paramed_type *T); +int skip_constructor_update_msg_update (struct paramed_type *T); +int skip_constructor_updates_too_long (struct paramed_type *T); +int skip_constructor_update_short_message (struct paramed_type *T); +int skip_constructor_update_short_chat_message (struct paramed_type *T); +int skip_constructor_update_short (struct paramed_type *T); +int skip_constructor_updates_combined (struct paramed_type *T); +int skip_constructor_updates (struct paramed_type *T); +int skip_constructor_user_empty (struct paramed_type *T); +int skip_constructor_user (struct paramed_type *T); +int skip_constructor_user_full (struct paramed_type *T); +int skip_constructor_user_profile_photo_empty (struct paramed_type *T); +int skip_constructor_user_profile_photo (struct paramed_type *T); +int skip_constructor_user_status_empty (struct paramed_type *T); +int skip_constructor_user_status_online (struct paramed_type *T); +int skip_constructor_user_status_offline (struct paramed_type *T); +int skip_constructor_user_status_recently (struct paramed_type *T); +int skip_constructor_user_status_last_week (struct paramed_type *T); +int skip_constructor_user_status_last_month (struct paramed_type *T); +int skip_constructor_vector (struct paramed_type *T); +int skip_constructor_video_empty (struct paramed_type *T); +int skip_constructor_video (struct paramed_type *T); +int skip_constructor_video_l27 (struct paramed_type *T); +int skip_constructor_wall_paper (struct paramed_type *T); +int skip_constructor_wall_paper_solid (struct paramed_type *T); +int skip_constructor_web_page_empty (struct paramed_type *T); +int skip_constructor_web_page_pending (struct paramed_type *T); +int skip_constructor_web_page (struct paramed_type *T); +int skip_constructor_account_authorizations (struct paramed_type *T); +int skip_constructor_account_no_password (struct paramed_type *T); +int skip_constructor_account_password (struct paramed_type *T); +int skip_constructor_account_password_input_settings (struct paramed_type *T); +int skip_constructor_account_password_settings (struct paramed_type *T); +int skip_constructor_account_privacy_rules (struct paramed_type *T); +int skip_constructor_account_sent_change_phone_code (struct paramed_type *T); +int skip_constructor_auth_authorization (struct paramed_type *T); +int skip_constructor_auth_checked_phone (struct paramed_type *T); +int skip_constructor_auth_exported_authorization (struct paramed_type *T); +int skip_constructor_auth_password_recovery (struct paramed_type *T); +int skip_constructor_auth_sent_code (struct paramed_type *T); +int skip_constructor_auth_sent_app_code (struct paramed_type *T); +int skip_constructor_binlog_encr_key (struct paramed_type *T); +int skip_constructor_binlog_start (struct paramed_type *T); +int skip_constructor_binlog_dc_option (struct paramed_type *T); +int skip_constructor_binlog_dc_option_new (struct paramed_type *T); +int skip_constructor_binlog_auth_key (struct paramed_type *T); +int skip_constructor_binlog_default_dc (struct paramed_type *T); +int skip_constructor_binlog_dc_signed (struct paramed_type *T); +int skip_constructor_binlog_our_id (struct paramed_type *T); +int skip_constructor_binlog_set_dh_params (struct paramed_type *T); +int skip_constructor_binlog_set_pts (struct paramed_type *T); +int skip_constructor_binlog_set_qts (struct paramed_type *T); +int skip_constructor_binlog_set_date (struct paramed_type *T); +int skip_constructor_binlog_set_seq (struct paramed_type *T); +int skip_constructor_binlog_encr_chat_delete (struct paramed_type *T); +int skip_constructor_binlog_encr_chat_new (struct paramed_type *T); +int skip_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T); +int skip_constructor_binlog_user_delete (struct paramed_type *T); +int skip_constructor_binlog_user_new (struct paramed_type *T); +int skip_constructor_binlog_chat_new (struct paramed_type *T); +int skip_constructor_binlog_chat_add_participant (struct paramed_type *T); +int skip_constructor_binlog_chat_del_participant (struct paramed_type *T); +int skip_constructor_binlog_set_msg_id (struct paramed_type *T); +int skip_constructor_binlog_message_delete (struct paramed_type *T); +int skip_constructor_binlog_message_new (struct paramed_type *T); +int skip_constructor_binlog_message_encr_new (struct paramed_type *T); +int skip_constructor_binlog_msg_update (struct paramed_type *T); +int skip_constructor_binlog_reset_authorization (struct paramed_type *T); +int skip_constructor_contacts_blocked (struct paramed_type *T); +int skip_constructor_contacts_blocked_slice (struct paramed_type *T); +int skip_constructor_contacts_contacts_not_modified (struct paramed_type *T); +int skip_constructor_contacts_contacts (struct paramed_type *T); +int skip_constructor_contacts_found (struct paramed_type *T); +int skip_constructor_contacts_imported_contacts (struct paramed_type *T); +int skip_constructor_contacts_link (struct paramed_type *T); +int skip_constructor_contacts_suggested (struct paramed_type *T); +int skip_constructor_geochats_located (struct paramed_type *T); +int skip_constructor_geochats_messages (struct paramed_type *T); +int skip_constructor_geochats_messages_slice (struct paramed_type *T); +int skip_constructor_geochats_stated_message (struct paramed_type *T); +int skip_constructor_help_app_update (struct paramed_type *T); +int skip_constructor_help_no_app_update (struct paramed_type *T); +int skip_constructor_help_invite_text (struct paramed_type *T); +int skip_constructor_help_support (struct paramed_type *T); +int skip_constructor_messages_affected_history (struct paramed_type *T); +int skip_constructor_messages_affected_messages (struct paramed_type *T); +int skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T); +int skip_constructor_messages_all_stickers (struct paramed_type *T); +int skip_constructor_messages_chat_full (struct paramed_type *T); +int skip_constructor_messages_chats (struct paramed_type *T); +int skip_constructor_messages_dh_config_not_modified (struct paramed_type *T); +int skip_constructor_messages_dh_config (struct paramed_type *T); +int skip_constructor_messages_dialogs (struct paramed_type *T); +int skip_constructor_messages_dialogs_slice (struct paramed_type *T); +int skip_constructor_messages_message_empty (struct paramed_type *T); +int skip_constructor_messages_messages (struct paramed_type *T); +int skip_constructor_messages_messages_slice (struct paramed_type *T); +int skip_constructor_messages_sent_encrypted_message (struct paramed_type *T); +int skip_constructor_messages_sent_encrypted_file (struct paramed_type *T); +int skip_constructor_messages_sent_message (struct paramed_type *T); +int skip_constructor_messages_sent_message_link (struct paramed_type *T); +int skip_constructor_messages_sticker_set (struct paramed_type *T); +int skip_constructor_messages_stickers_not_modified (struct paramed_type *T); +int skip_constructor_messages_stickers (struct paramed_type *T); +int skip_constructor_photos_photo (struct paramed_type *T); +int skip_constructor_photos_photos (struct paramed_type *T); +int skip_constructor_photos_photos_slice (struct paramed_type *T); +int skip_constructor_storage_file_unknown (struct paramed_type *T); +int skip_constructor_storage_file_jpeg (struct paramed_type *T); +int skip_constructor_storage_file_gif (struct paramed_type *T); +int skip_constructor_storage_file_png (struct paramed_type *T); +int skip_constructor_storage_file_pdf (struct paramed_type *T); +int skip_constructor_storage_file_mp3 (struct paramed_type *T); +int skip_constructor_storage_file_mov (struct paramed_type *T); +int skip_constructor_storage_file_partial (struct paramed_type *T); +int skip_constructor_storage_file_mp4 (struct paramed_type *T); +int skip_constructor_storage_file_webp (struct paramed_type *T); +int skip_constructor_updates_difference_empty (struct paramed_type *T); +int skip_constructor_updates_difference (struct paramed_type *T); +int skip_constructor_updates_difference_slice (struct paramed_type *T); +int skip_constructor_updates_state (struct paramed_type *T); +int skip_constructor_upload_file (struct paramed_type *T); +int skip_type_account_days_t_t_l (struct paramed_type *T); +int skip_type_bare_account_days_t_t_l (struct paramed_type *T); +int skip_type_audio (struct paramed_type *T); +int skip_type_bare_audio (struct paramed_type *T); +int skip_type_authorization (struct paramed_type *T); +int skip_type_bare_authorization (struct paramed_type *T); +int skip_type_bool (struct paramed_type *T); +int skip_type_bare_bool (struct paramed_type *T); +int skip_type_bot_command (struct paramed_type *T); +int skip_type_bare_bot_command (struct paramed_type *T); +int skip_type_bot_info (struct paramed_type *T); +int skip_type_bare_bot_info (struct paramed_type *T); +int skip_type_bytes (struct paramed_type *T); +int skip_type_bare_bytes (struct paramed_type *T); +int skip_type_chat (struct paramed_type *T); +int skip_type_bare_chat (struct paramed_type *T); +int skip_type_chat_full (struct paramed_type *T); +int skip_type_bare_chat_full (struct paramed_type *T); +int skip_type_chat_invite (struct paramed_type *T); +int skip_type_bare_chat_invite (struct paramed_type *T); +int skip_type_chat_located (struct paramed_type *T); +int skip_type_bare_chat_located (struct paramed_type *T); +int skip_type_chat_participant (struct paramed_type *T); +int skip_type_bare_chat_participant (struct paramed_type *T); +int skip_type_chat_participants (struct paramed_type *T); +int skip_type_bare_chat_participants (struct paramed_type *T); +int skip_type_chat_photo (struct paramed_type *T); +int skip_type_bare_chat_photo (struct paramed_type *T); +int skip_type_client_d_h_inner_data (struct paramed_type *T); +int skip_type_bare_client_d_h_inner_data (struct paramed_type *T); +int skip_type_config (struct paramed_type *T); +int skip_type_bare_config (struct paramed_type *T); +int skip_type_contact (struct paramed_type *T); +int skip_type_bare_contact (struct paramed_type *T); +int skip_type_contact_blocked (struct paramed_type *T); +int skip_type_bare_contact_blocked (struct paramed_type *T); +int skip_type_contact_found (struct paramed_type *T); +int skip_type_bare_contact_found (struct paramed_type *T); +int skip_type_contact_link (struct paramed_type *T); +int skip_type_bare_contact_link (struct paramed_type *T); +int skip_type_contact_status (struct paramed_type *T); +int skip_type_bare_contact_status (struct paramed_type *T); +int skip_type_contact_suggested (struct paramed_type *T); +int skip_type_bare_contact_suggested (struct paramed_type *T); +int skip_type_dc_option (struct paramed_type *T); +int skip_type_bare_dc_option (struct paramed_type *T); +int skip_type_decrypted_message (struct paramed_type *T); +int skip_type_bare_decrypted_message (struct paramed_type *T); +int skip_type_decrypted_message_action (struct paramed_type *T); +int skip_type_bare_decrypted_message_action (struct paramed_type *T); +int skip_type_decrypted_message_layer (struct paramed_type *T); +int skip_type_bare_decrypted_message_layer (struct paramed_type *T); +int skip_type_decrypted_message_media (struct paramed_type *T); +int skip_type_bare_decrypted_message_media (struct paramed_type *T); +int skip_type_dialog (struct paramed_type *T); +int skip_type_bare_dialog (struct paramed_type *T); +int skip_type_disabled_feature (struct paramed_type *T); +int skip_type_bare_disabled_feature (struct paramed_type *T); +int skip_type_document (struct paramed_type *T); +int skip_type_bare_document (struct paramed_type *T); +int skip_type_document_attribute (struct paramed_type *T); +int skip_type_bare_document_attribute (struct paramed_type *T); +int skip_type_double (struct paramed_type *T); +int skip_type_bare_double (struct paramed_type *T); +int skip_type_encrypted_chat (struct paramed_type *T); +int skip_type_bare_encrypted_chat (struct paramed_type *T); +int skip_type_encrypted_file (struct paramed_type *T); +int skip_type_bare_encrypted_file (struct paramed_type *T); +int skip_type_encrypted_message (struct paramed_type *T); +int skip_type_bare_encrypted_message (struct paramed_type *T); +int skip_type_error (struct paramed_type *T); +int skip_type_bare_error (struct paramed_type *T); +int skip_type_exported_chat_invite (struct paramed_type *T); +int skip_type_bare_exported_chat_invite (struct paramed_type *T); +int skip_type_file_location (struct paramed_type *T); +int skip_type_bare_file_location (struct paramed_type *T); +int skip_type_geo_chat_message (struct paramed_type *T); +int skip_type_bare_geo_chat_message (struct paramed_type *T); +int skip_type_geo_point (struct paramed_type *T); +int skip_type_bare_geo_point (struct paramed_type *T); +int skip_type_imported_contact (struct paramed_type *T); +int skip_type_bare_imported_contact (struct paramed_type *T); +int skip_type_input_app_event (struct paramed_type *T); +int skip_type_bare_input_app_event (struct paramed_type *T); +int skip_type_input_audio (struct paramed_type *T); +int skip_type_bare_input_audio (struct paramed_type *T); +int skip_type_input_chat_photo (struct paramed_type *T); +int skip_type_bare_input_chat_photo (struct paramed_type *T); +int skip_type_input_contact (struct paramed_type *T); +int skip_type_bare_input_contact (struct paramed_type *T); +int skip_type_input_document (struct paramed_type *T); +int skip_type_bare_input_document (struct paramed_type *T); +int skip_type_input_encrypted_chat (struct paramed_type *T); +int skip_type_bare_input_encrypted_chat (struct paramed_type *T); +int skip_type_input_encrypted_file (struct paramed_type *T); +int skip_type_bare_input_encrypted_file (struct paramed_type *T); +int skip_type_input_file (struct paramed_type *T); +int skip_type_bare_input_file (struct paramed_type *T); +int skip_type_input_file_location (struct paramed_type *T); +int skip_type_bare_input_file_location (struct paramed_type *T); +int skip_type_input_geo_chat (struct paramed_type *T); +int skip_type_bare_input_geo_chat (struct paramed_type *T); +int skip_type_input_geo_point (struct paramed_type *T); +int skip_type_bare_input_geo_point (struct paramed_type *T); +int skip_type_input_media (struct paramed_type *T); +int skip_type_bare_input_media (struct paramed_type *T); +int skip_type_input_notify_peer (struct paramed_type *T); +int skip_type_bare_input_notify_peer (struct paramed_type *T); +int skip_type_input_peer (struct paramed_type *T); +int skip_type_bare_input_peer (struct paramed_type *T); +int skip_type_input_peer_notify_events (struct paramed_type *T); +int skip_type_bare_input_peer_notify_events (struct paramed_type *T); +int skip_type_input_peer_notify_settings (struct paramed_type *T); +int skip_type_bare_input_peer_notify_settings (struct paramed_type *T); +int skip_type_input_photo (struct paramed_type *T); +int skip_type_bare_input_photo (struct paramed_type *T); +int skip_type_input_photo_crop (struct paramed_type *T); +int skip_type_bare_input_photo_crop (struct paramed_type *T); +int skip_type_input_privacy_key (struct paramed_type *T); +int skip_type_bare_input_privacy_key (struct paramed_type *T); +int skip_type_input_privacy_rule (struct paramed_type *T); +int skip_type_bare_input_privacy_rule (struct paramed_type *T); +int skip_type_input_sticker_set (struct paramed_type *T); +int skip_type_bare_input_sticker_set (struct paramed_type *T); +int skip_type_input_user (struct paramed_type *T); +int skip_type_bare_input_user (struct paramed_type *T); +int skip_type_input_video (struct paramed_type *T); +int skip_type_bare_input_video (struct paramed_type *T); +int skip_type_int (struct paramed_type *T); +int skip_type_bare_int (struct paramed_type *T); +int skip_type_int128 (struct paramed_type *T); +int skip_type_bare_int128 (struct paramed_type *T); +int skip_type_int256 (struct paramed_type *T); +int skip_type_bare_int256 (struct paramed_type *T); +int skip_type_keyboard_button (struct paramed_type *T); +int skip_type_bare_keyboard_button (struct paramed_type *T); +int skip_type_keyboard_button_row (struct paramed_type *T); +int skip_type_bare_keyboard_button_row (struct paramed_type *T); +int skip_type_long (struct paramed_type *T); +int skip_type_bare_long (struct paramed_type *T); +int skip_type_message (struct paramed_type *T); +int skip_type_bare_message (struct paramed_type *T); +int skip_type_message_action (struct paramed_type *T); +int skip_type_bare_message_action (struct paramed_type *T); +int skip_type_message_media (struct paramed_type *T); +int skip_type_bare_message_media (struct paramed_type *T); +int skip_type_messages_filter (struct paramed_type *T); +int skip_type_bare_messages_filter (struct paramed_type *T); +int skip_type_nearest_dc (struct paramed_type *T); +int skip_type_bare_nearest_dc (struct paramed_type *T); +int skip_type_notify_peer (struct paramed_type *T); +int skip_type_bare_notify_peer (struct paramed_type *T); +int skip_type_null (struct paramed_type *T); +int skip_type_bare_null (struct paramed_type *T); +int skip_type_p_q_inner_data (struct paramed_type *T); +int skip_type_bare_p_q_inner_data (struct paramed_type *T); +int skip_type_peer (struct paramed_type *T); +int skip_type_bare_peer (struct paramed_type *T); +int skip_type_peer_notify_events (struct paramed_type *T); +int skip_type_bare_peer_notify_events (struct paramed_type *T); +int skip_type_peer_notify_settings (struct paramed_type *T); +int skip_type_bare_peer_notify_settings (struct paramed_type *T); +int skip_type_photo (struct paramed_type *T); +int skip_type_bare_photo (struct paramed_type *T); +int skip_type_photo_size (struct paramed_type *T); +int skip_type_bare_photo_size (struct paramed_type *T); +int skip_type_privacy_key (struct paramed_type *T); +int skip_type_bare_privacy_key (struct paramed_type *T); +int skip_type_privacy_rule (struct paramed_type *T); +int skip_type_bare_privacy_rule (struct paramed_type *T); +int skip_type_received_notify_message (struct paramed_type *T); +int skip_type_bare_received_notify_message (struct paramed_type *T); +int skip_type_reply_markup (struct paramed_type *T); +int skip_type_bare_reply_markup (struct paramed_type *T); +int skip_type_res_p_q (struct paramed_type *T); +int skip_type_bare_res_p_q (struct paramed_type *T); +int skip_type_send_message_action (struct paramed_type *T); +int skip_type_bare_send_message_action (struct paramed_type *T); +int skip_type_server_d_h_params (struct paramed_type *T); +int skip_type_bare_server_d_h_params (struct paramed_type *T); +int skip_type_server_d_h_inner_data (struct paramed_type *T); +int skip_type_bare_server_d_h_inner_data (struct paramed_type *T); +int skip_type_set_client_d_h_params_answer (struct paramed_type *T); +int skip_type_bare_set_client_d_h_params_answer (struct paramed_type *T); +int skip_type_sticker_pack (struct paramed_type *T); +int skip_type_bare_sticker_pack (struct paramed_type *T); +int skip_type_sticker_set (struct paramed_type *T); +int skip_type_bare_sticker_set (struct paramed_type *T); +int skip_type_string (struct paramed_type *T); +int skip_type_bare_string (struct paramed_type *T); +int skip_type_update (struct paramed_type *T); +int skip_type_bare_update (struct paramed_type *T); +int skip_type_updates (struct paramed_type *T); +int skip_type_bare_updates (struct paramed_type *T); +int skip_type_user (struct paramed_type *T); +int skip_type_bare_user (struct paramed_type *T); +int skip_type_user_full (struct paramed_type *T); +int skip_type_bare_user_full (struct paramed_type *T); +int skip_type_user_profile_photo (struct paramed_type *T); +int skip_type_bare_user_profile_photo (struct paramed_type *T); +int skip_type_user_status (struct paramed_type *T); +int skip_type_bare_user_status (struct paramed_type *T); +int skip_type_vector (struct paramed_type *T); +int skip_type_bare_vector (struct paramed_type *T); +int skip_type_video (struct paramed_type *T); +int skip_type_bare_video (struct paramed_type *T); +int skip_type_wall_paper (struct paramed_type *T); +int skip_type_bare_wall_paper (struct paramed_type *T); +int skip_type_web_page (struct paramed_type *T); +int skip_type_bare_web_page (struct paramed_type *T); +int skip_type_account_authorizations (struct paramed_type *T); +int skip_type_bare_account_authorizations (struct paramed_type *T); +int skip_type_account_password (struct paramed_type *T); +int skip_type_bare_account_password (struct paramed_type *T); +int skip_type_account_password_input_settings (struct paramed_type *T); +int skip_type_bare_account_password_input_settings (struct paramed_type *T); +int skip_type_account_password_settings (struct paramed_type *T); +int skip_type_bare_account_password_settings (struct paramed_type *T); +int skip_type_account_privacy_rules (struct paramed_type *T); +int skip_type_bare_account_privacy_rules (struct paramed_type *T); +int skip_type_account_sent_change_phone_code (struct paramed_type *T); +int skip_type_bare_account_sent_change_phone_code (struct paramed_type *T); +int skip_type_auth_authorization (struct paramed_type *T); +int skip_type_bare_auth_authorization (struct paramed_type *T); +int skip_type_auth_checked_phone (struct paramed_type *T); +int skip_type_bare_auth_checked_phone (struct paramed_type *T); +int skip_type_auth_exported_authorization (struct paramed_type *T); +int skip_type_bare_auth_exported_authorization (struct paramed_type *T); +int skip_type_auth_password_recovery (struct paramed_type *T); +int skip_type_bare_auth_password_recovery (struct paramed_type *T); +int skip_type_auth_sent_code (struct paramed_type *T); +int skip_type_bare_auth_sent_code (struct paramed_type *T); +int skip_type_binlog_encr_key (struct paramed_type *T); +int skip_type_bare_binlog_encr_key (struct paramed_type *T); +int skip_type_binlog_update (struct paramed_type *T); +int skip_type_bare_binlog_update (struct paramed_type *T); +int skip_type_contacts_blocked (struct paramed_type *T); +int skip_type_bare_contacts_blocked (struct paramed_type *T); +int skip_type_contacts_contacts (struct paramed_type *T); +int skip_type_bare_contacts_contacts (struct paramed_type *T); +int skip_type_contacts_found (struct paramed_type *T); +int skip_type_bare_contacts_found (struct paramed_type *T); +int skip_type_contacts_imported_contacts (struct paramed_type *T); +int skip_type_bare_contacts_imported_contacts (struct paramed_type *T); +int skip_type_contacts_link (struct paramed_type *T); +int skip_type_bare_contacts_link (struct paramed_type *T); +int skip_type_contacts_suggested (struct paramed_type *T); +int skip_type_bare_contacts_suggested (struct paramed_type *T); +int skip_type_geochats_located (struct paramed_type *T); +int skip_type_bare_geochats_located (struct paramed_type *T); +int skip_type_geochats_messages (struct paramed_type *T); +int skip_type_bare_geochats_messages (struct paramed_type *T); +int skip_type_geochats_stated_message (struct paramed_type *T); +int skip_type_bare_geochats_stated_message (struct paramed_type *T); +int skip_type_help_app_update (struct paramed_type *T); +int skip_type_bare_help_app_update (struct paramed_type *T); +int skip_type_help_invite_text (struct paramed_type *T); +int skip_type_bare_help_invite_text (struct paramed_type *T); +int skip_type_help_support (struct paramed_type *T); +int skip_type_bare_help_support (struct paramed_type *T); +int skip_type_messages_affected_history (struct paramed_type *T); +int skip_type_bare_messages_affected_history (struct paramed_type *T); +int skip_type_messages_affected_messages (struct paramed_type *T); +int skip_type_bare_messages_affected_messages (struct paramed_type *T); +int skip_type_messages_all_stickers (struct paramed_type *T); +int skip_type_bare_messages_all_stickers (struct paramed_type *T); +int skip_type_messages_chat_full (struct paramed_type *T); +int skip_type_bare_messages_chat_full (struct paramed_type *T); +int skip_type_messages_chats (struct paramed_type *T); +int skip_type_bare_messages_chats (struct paramed_type *T); +int skip_type_messages_dh_config (struct paramed_type *T); +int skip_type_bare_messages_dh_config (struct paramed_type *T); +int skip_type_messages_dialogs (struct paramed_type *T); +int skip_type_bare_messages_dialogs (struct paramed_type *T); +int skip_type_messages_message (struct paramed_type *T); +int skip_type_bare_messages_message (struct paramed_type *T); +int skip_type_messages_messages (struct paramed_type *T); +int skip_type_bare_messages_messages (struct paramed_type *T); +int skip_type_messages_sent_encrypted_message (struct paramed_type *T); +int skip_type_bare_messages_sent_encrypted_message (struct paramed_type *T); +int skip_type_messages_sent_message (struct paramed_type *T); +int skip_type_bare_messages_sent_message (struct paramed_type *T); +int skip_type_messages_sticker_set (struct paramed_type *T); +int skip_type_bare_messages_sticker_set (struct paramed_type *T); +int skip_type_messages_stickers (struct paramed_type *T); +int skip_type_bare_messages_stickers (struct paramed_type *T); +int skip_type_photos_photo (struct paramed_type *T); +int skip_type_bare_photos_photo (struct paramed_type *T); +int skip_type_photos_photos (struct paramed_type *T); +int skip_type_bare_photos_photos (struct paramed_type *T); +int skip_type_storage_file_type (struct paramed_type *T); +int skip_type_bare_storage_file_type (struct paramed_type *T); +int skip_type_updates_difference (struct paramed_type *T); +int skip_type_bare_updates_difference (struct paramed_type *T); +int skip_type_updates_state (struct paramed_type *T); +int skip_type_bare_updates_state (struct paramed_type *T); +int skip_type_upload_file (struct paramed_type *T); +int skip_type_bare_upload_file (struct paramed_type *T); +int skip_type_any (struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-store-ds.c b/libs/tgl/src/auto/auto-store-ds.c new file mode 100644 index 0000000000..1a5356e4d0 --- /dev/null +++ b/libs/tgl/src/auto/auto-store-ds.c @@ -0,0 +1,10208 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-store-ds.h" +#include "auto-skip.h" +#include "auto-types.h" +#include "..\auto-static-store-ds.c" +#include "..\mtproto-common.h" +#else +#include "auto.h" +#include "auto/auto-store-ds.h" +#include "auto/auto-skip.h" +#include "auto/auto-types.h" +#include "auto-static-store-ds.c" +#include "mtproto-common.h" +#endif +#include +void store_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->days, field1); +} +void store_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); +} +void store_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field8); +} +void store_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->device_model, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->platform, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->system_version, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->api_id, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->app_name, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->app_version, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date_created, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date_active, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->ip, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->country, field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->region, field13); +} +void store_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; } +} +void store_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return; } +} +void store_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->command, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->description, field2); +} +void store_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->command, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->params, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->description, field3); +} +void store_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; } +} +void store_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->share_text, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->description, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->commands, field5); +} +void store_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return; } + out_cstring (D->data, D->len); +} +void store_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_photo (D->photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->participants_count, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->left, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field7); +} +void store_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); +} +void store_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->address, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->venue, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_point (D->geo, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_photo (D->photo, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->participants_count, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->checked_in, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field11); +} +void store_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_participants (D->participants, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->chat_photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer_notify_settings (D->notify_settings, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_exported_chat_invite (D->exported_invite, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->bot_info, field6); +} +void store_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat (D->chat, field1); +} +void store_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field1); +} +void store_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->distance, field2); +} +void store_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->inviter_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); +} +void store_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); +} +void store_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->participants, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field4); +} +void store_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; } +} +void store_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->photo_small, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->photo_big, field2); +} +void store_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->retry_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->g_b, field4); +} +void store_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->expires, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->test_mode, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->this_dc, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->dc_options, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_size_max, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->broadcast_size_max, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->forwarded_count_max, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->online_update_period_ms, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->offline_blur_timeout_ms, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->offline_idle_timeout_ms, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->online_cloud_timeout_ms, field12); + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->notify_cloud_delay_ms, field13); + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->notify_default_delay_ms, field14); + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_big_size, field15); + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->push_chat_period_ms, field16); + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->push_chat_limit, field17); + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->disabled_features, field18); +} +void store_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->mutual, field2); +} +void store_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); +} +void store_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void store_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void store_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void store_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return; } +} +void store_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_status (D->status, field2); +} +void store_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->mutual_contacts, field2); +} +void store_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->hostname, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->ip_address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->port, field4); +} +void store_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->ip_address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->port, field4); +} +void store_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->ttl, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_decrypted_message_media (D->media, field4); +} +void store_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_decrypted_message_action (D->action, field2); +} +void store_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->ttl_seconds, field1); +} +void store_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->random_ids, field1); +} +void store_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->random_ids, field1); +} +void store_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->random_ids, field1); +} +void store_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } +} +void store_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->start_seq_no, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->end_seq_no, field2); +} +void store_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->layer, field1); +} +void store_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_send_message_action (D->action, field1); +} +void store_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->g_a, field2); +} +void store_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->g_b, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->key_fingerprint, field3); +} +void store_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->exchange_id, field1); +} +void store_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->exchange_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->key_fingerprint, field2); +} +void store_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return; } +} +void store_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->random_bytes, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->layer, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->in_seq_no, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->out_seq_no, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_decrypted_message (D->message, field5); +} +void store_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } +} +void store_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field8); +} +void store_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->latitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->longitude, field2); +} +void store_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field4); +} +void store_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->file_name, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field8); +} +void store_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field10); +} +void store_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field5); +} +void store_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo_size (D->thumb, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->attributes, field8); +} +void store_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->str_thumb, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->thumb_h, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field9); +} +void store_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->key, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->iv, field4); +} +void store_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->top_message, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->read_inbox_max_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->unread_count, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer_notify_settings (D->notify_settings, field5); +} +void store_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->feature, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->description, field2); +} +void store_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); +} +void store_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo_size (D->thumb, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->attributes, field8); +} +void store_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->file_name, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo_size (D->thumb, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field9); +} +void store_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field2); +} +void store_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } +} +void store_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->alt, field1); +} +void store_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->alt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_sticker_set (D->stickerset, field2); +} +void store_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field3); +} +void store_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field1); +} +void store_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->file_name, field1); +} +void store_ds_constructor_double (double *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return; } + out_double (*D); +} +void store_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->participant_id, field5); +} +void store_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->participant_id, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->g_a, field6); +} +void store_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->participant_id, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->g_a_or_b, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->key_fingerprint, field7); +} +void store_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; } +} +void store_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->key_fingerprint, field5); +} +void store_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->bytes, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_encrypted_file (D->file, field5); +} +void store_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->random_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->bytes, field4); +} +void store_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->code, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->text, field2); +} +void store_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; } +} +void store_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->link, field1); +} +void store_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->volume_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->local_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->secret, field3); +} +void store_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->volume_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->local_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->secret, field4); +} +void store_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); +} +void store_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field6); +} +void store_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_action (D->action, field5); +} +void store_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; } +} +void store_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->longitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->latitude, field2); +} +void store_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->client_id, field2); +} +void store_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->time, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->peer, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->data, field4); +} +void store_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; } +} +void store_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } +} +void store_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_photo_crop (D->crop, field2); +} +void store_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_photo (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_photo_crop (D->crop, field2); +} +void store_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->client_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field4); +} +void store_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; } +} +void store_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } +} +void store_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->md5_checksum, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->key_fingerprint, field4); +} +void store_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->key_fingerprint, field3); +} +void store_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->md5_checksum, field4); +} +void store_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->parts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->name, field3); +} +void store_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->volume_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->local_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->secret, field3); +} +void store_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; } +} +void store_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->latitude, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->longitude, field2); +} +void store_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } +} +void store_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field2); +} +void store_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_photo (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field2); +} +void store_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_geo_point (D->geo_point, field1); +} +void store_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field3); +} +void store_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field5); +} +void store_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->thumb, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field6); +} +void store_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_video (D->video_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field2); +} +void store_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field3); +} +void store_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_audio (D->audio_id, field1); +} +void store_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->attributes, field3); +} +void store_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->file, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_file (D->thumb, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->attributes, field4); +} +void store_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_document (D->document_id, field1); +} +void store_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_geo_point (D->geo_point, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->provider, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->venue_id, field5); +} +void store_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_peer (D->peer, field1); +} +void store_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void store_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void store_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } +} +void store_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_input_geo_chat (D->geo_peer, field1); +} +void store_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } +} +void store_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } +} +void store_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); +} +void store_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; } +} +void store_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return; } +} +void store_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->mute_until, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->sound, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->show_previews, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->events_mask, field4); +} +void store_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; } +} +void store_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; } +} +void store_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->crop_left, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->crop_top, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_double (D->crop_width, field3); +} +void store_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return; } +} +void store_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void store_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void store_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field1); +} +void store_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void store_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } +} +void store_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field1); +} +void store_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } +} +void store_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->short_name, field1); +} +void store_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } +} +void store_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } +} +void store_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; } +} +void store_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); +} +void store_ds_constructor_int (int *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return; } + out_int (*D); +} +void store_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f0, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f1, field2); +} +void store_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f0, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f1, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f2, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->f3, field4); +} +void store_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->text, field1); +} +void store_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->buttons, field1); +} +void store_ds_constructor_long (long long *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return; } + out_long (*D); +} +void store_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->to_id, field4); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_from_id, field5); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_date, field6); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->reply_to_msg_id, field7); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field10); + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_reply_markup (D->reply_markup, field11); + } +} +void store_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->to_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_action (D->action, field6); +} +void store_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void store_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field1); +} +void store_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field1); +} +void store_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void store_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->address, field2); +} +void store_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } +} +void store_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->inviter_id, field1); +} +void store_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } +} +void store_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field2); +} +void store_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_video (D->video, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field2); +} +void store_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_point (D->geo, field1); +} +void store_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field4); +} +void store_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } +} +void store_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_document (D->document, field1); +} +void store_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_audio (D->audio, field1); +} +void store_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_web_page (D->webpage, field1); +} +void store_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_point (D->geo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->address, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->provider, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->venue_id, field5); +} +void store_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field1); +} +void store_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_video (D->video, field1); +} +void store_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return; } +} +void store_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->country, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->this_dc, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->nearest_dc, field3); +} +void store_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->peer, field1); +} +void store_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void store_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void store_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return; } +} +void store_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return; } +} +void store_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->pq, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->q, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int256 (D->new_nonce, field6); +} +void store_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->pq, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->q, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int256 (D->new_nonce, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->expires_in, field7); +} +void store_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); +} +void store_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); +} +void store_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; } +} +void store_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return; } +} +void store_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; } +} +void store_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->mute_until, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->sound, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->show_previews, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->events_mask, field4); +} +void store_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); +} +void store_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_point (D->geo, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->sizes, field6); +} +void store_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_point (D->geo, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->sizes, field7); +} +void store_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field1); +} +void store_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->location, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field5); +} +void store_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->location, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->bytes, field5); +} +void store_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return; } +} +void store_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void store_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void store_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field1); +} +void store_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void store_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } +} +void store_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field1); +} +void store_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field2); +} +void store_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); +} +void store_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); +} +void store_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->rows, field2); +} +void store_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->pq, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->server_public_key_fingerprints, field4); +} +void store_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->progress, field1); +} +void store_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->progress, field1); +} +void store_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->progress, field1); +} +void store_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->progress, field1); +} +void store_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return; } +} +void store_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->new_nonce_hash, field3); +} +void store_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->encrypted_answer, field3); +} +void store_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->g, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->dh_prime, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->g_a, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->server_time, field6); +} +void store_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->new_nonce_hash1, field3); +} +void store_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->new_nonce_hash2, field3); +} +void store_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->nonce, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->server_nonce, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int128 (D->new_nonce_hash3, field3); +} +void store_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->emoticon, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->documents, field2); +} +void store_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->short_name, field4); +} +void store_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return; } + out_cstring (D->data, D->len); +} +void store_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message (D->message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field3); +} +void store_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->random_id, field2); +} +void store_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field3); +} +void store_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_send_message_action (D->action, field2); +} +void store_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_send_message_action (D->action, field3); +} +void store_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_participants (D->participants, field1); +} +void store_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_status (D->status, field2); +} +void store_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->username, field4); +} +void store_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_profile_photo (D->photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->previous, field4); +} +void store_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); +} +void store_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_contact_link (D->my_link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_contact_link (D->foreign_link, field3); +} +void store_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->auth_key_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->device, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->location, field4); +} +void store_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_chat_message (D->geo_message, field1); +} +void store_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_encrypted_message (D->encr_message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->qts, field2); +} +void store_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); +} +void store_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_encrypted_chat (D->encr_chat, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); +} +void store_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->max_date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); +} +void store_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->inviter_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field4); +} +void store_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field3); +} +void store_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->dc_options, field1); +} +void store_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->blocked, field2); +} +void store_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_notify_peer (D->notify_peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer_notify_settings (D->notify_settings, field2); +} +void store_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message_text, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->popup, field4); +} +void store_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_privacy_key (D->key, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->rules, field2); +} +void store_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone, field2); +} +void store_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->max_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field4); +} +void store_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer (D->peer, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->max_id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field4); +} +void store_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_web_page (D->webpage, field1); +} +void store_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field3); +} +void store_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field3); +} +void store_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } +} +void store_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field7); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_from_id, field8); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_date, field9); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->reply_to_msg_id, field10); + } +} +void store_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->chat_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field8); + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_from_id, field9); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_date, field10); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->reply_to_msg_id, field11); + } +} +void store_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_update (D->update, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); +} +void store_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->updates, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq_start, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field6); +} +void store_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->updates, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field5); +} +void store_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field4); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field5); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->username, field6); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone, field7); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_profile_photo (D->photo, field8); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_status (D->status, field9); + } + if (PTR2INT (var0) & (1 << 14)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->bot_info_version, field10); + } +} +void store_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user (D->user, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_contacts_link (D->link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->profile_photo, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_peer_notify_settings (D->notify_settings, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->blocked, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bot_info (D->bot_info, field6); +} +void store_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; } +} +void store_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->photo_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->photo_small, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_file_location (D->photo_big, field3); +} +void store_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void store_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->expires, field1); +} +void store_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->was_online, field1); +} +void store_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void store_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void store_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return; } +} +void store_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return; } + if (ODDP(T->params[0])) { return; } + struct paramed_type *var0 = T->params[0]; assert (var0); + struct paramed_type *var1 = INT2PTR (*D->f1); + out_int (PTR2INT (var1)); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + { + int i = 0; + while (i < multiplicity3) { + store_ds_type_any (D->f2[i ++], field3); + } + } +} +void store_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); +} +void store_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo_size (D->thumb, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field10); +} +void store_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->caption, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->mime_type, field7); + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->size, field8); + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo_size (D->thumb, field9); + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc_id, field10); + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->w, field11); + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->h, field12); +} +void store_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->sizes, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->color, field4); +} +void store_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->bg_color, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->color, field4); +} +void store_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); +} +void store_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); +} +void store_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->id, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->url, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->display_url, field4); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->type, field5); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->site_name, field6); + } + if (PTR2INT (var0) & (1 << 2)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field7); + } + if (PTR2INT (var0) & (1 << 3)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->description, field8); + } + if (PTR2INT (var0) & (1 << 4)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field9); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->embed_url, field10); + } + if (PTR2INT (var0) & (1 << 5)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->embed_type, field11); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->embed_width, field12); + } + if (PTR2INT (var0) & (1 << 6)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->embed_height, field13); + } + if (PTR2INT (var0) & (1 << 7)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->duration, field14); + } + if (PTR2INT (var0) & (1 << 8)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->author, field15); + } +} +void store_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->authorizations, field1); +} +void store_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->new_salt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->email_unconfirmed_pattern, field2); +} +void store_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->current_salt, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->new_salt, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->hint, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->has_recovery, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->email_unconfirmed_pattern, field5); +} +void store_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->new_salt, field2); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->new_password_hash, field3); + } + if (PTR2INT (var0) & (1 << 0)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->hint, field4); + } + if (PTR2INT (var0) & (1 << 1)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->email, field5); + } +} +void store_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->email, field1); +} +void store_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->rules, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_code_hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->send_call_timeout, field2); +} +void store_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user (D->user, field1); +} +void store_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->phone_registered, field1); +} +void store_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->bytes, field2); +} +void store_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->email_pattern, field1); +} +void store_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->phone_registered, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_code_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->send_call_timeout, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->is_password, field4); +} +void store_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->phone_registered, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_code_hash, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->send_call_timeout, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->is_password, field4); +} +void store_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return; } + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + { + int i = 0; + while (i < multiplicity1) { + store_ds_type_any (D->key[i ++], field1); + } + } +} +void store_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } +} +void store_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->name, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->ip, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->port, field4); +} +void store_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->flags, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->name, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->ip, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->port, field5); +} +void store_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_binlog_encr_key (D->key, field2); +} +void store_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc, field1); +} +void store_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->dc, field1); +} +void store_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->root, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_binlog_encr_key (D->prime, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field3); +} +void store_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field1); +} +void store_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->qts, field1); +} +void store_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field1); +} +void store_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field1); +} +void store_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin, field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field6); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_binlog_encr_key (D->key, field7); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_binlog_encr_key (D->g_key, field8); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->state, field9); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->ttl, field10); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->layer, field11); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->in_seq_no, field12); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->last_in_seq_no, field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->out_seq_no, field14); + } + if (PTR2INT (var0) & (1 << 27)) { + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->key_fingerprint, field15); + } +} +void store_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->exchange_id, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_binlog_encr_key (D->key, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->state, field5); + } +} +void store_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); +} +void store_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->access_hash, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->first_name, field4); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->last_name, field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->username, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->real_first_name, field9); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->real_last_name, field10); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user_profile_photo (D->user_photo, field11); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->last_read_in, field12); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->last_read_out, field13); + } + if (PTR2INT (var0) & (1 << 26)) { + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bot_info (D->bot_info, field14); + } +} +void store_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->title, field3); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_num, field4); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field5); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->participants, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_photo (D->chat_photo, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->admin, field10); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->last_read_in, field11); + } + if (PTR2INT (var0) & (1 << 25)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->last_read_out, field12); + } +} +void store_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->inviter_id, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field5); +} +void store_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->user_id, field3); +} +void store_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->old_id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->new_id, field2); +} +void store_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->lid, field1); +} +void store_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->lid, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->to_type, field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->to_id, field5); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_from_id, field6); + } + if (PTR2INT (var0) & (1 << 18)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->fwd_date, field7); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field8); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field9); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field10); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_action (D->action, field11); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->reply_id, field12); + } + if (PTR2INT (var0) & (1 << 24)) { + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_reply_markup (D->reply_markup, field13); + } +} +void store_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *var0 = INT2PTR (*D->flags); + out_int (PTR2INT (var0)); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->lid, field2); + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->from_id, field3); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->to_type, field4); + } + if (PTR2INT (var0) & (1 << 17)) { + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->to_id, field5); + } + if (PTR2INT (var0) & (1 << 19)) { + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field6); + } + if (PTR2INT (var0) & (1 << 20)) { + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field7); + } + if (PTR2INT (var0) & (1 << 21)) { + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_decrypted_message_media (D->encr_media, field8); + } + if (PTR2INT (var0) & (1 << 22)) { + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_decrypted_message_action (D->encr_action, field9); + } + if (PTR2INT (var0) & (1 << 23)) { + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_encrypted_file (D->file, field10); + } +} +void store_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_long (D->lid, field1); +} +void store_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return; } +} +void store_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->blocked, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->blocked, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; } +} +void store_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->contacts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->imported, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->retry_contacts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_contact_link (D->my_link, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_contact_link (D->foreign_link, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user (D->user, field3); +} +void store_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->results, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field4); +} +void store_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field4); +} +void store_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_geo_chat_message (D->message, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field4); +} +void store_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bool (D->critical, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->url, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->text, field4); +} +void store_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return; } +} +void store_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->message, field1); +} +void store_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->phone_number, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_user (D->user, field2); +} +void store_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->offset, field3); +} +void store_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field2); +} +void store_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; } +} +void store_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->packs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->sets, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->documents, field4); +} +void store_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_chat_full (D->full_chat, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field1); +} +void store_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->random, field1); +} +void store_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->g, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->p, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->version, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->random, field4); +} +void store_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->dialogs, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field4); +} +void store_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->dialogs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field5); +} +void store_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return; } +} +void store_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field4); +} +void store_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field1); +} +void store_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_encrypted_file (D->file, field2); +} +void store_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field5); +} +void store_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->id, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_message_media (D->media, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts_count, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->links, field6); + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field7); +} +void store_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_sticker_set (D->set, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->packs, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->documents, field3); +} +void store_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; } +} +void store_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_string (D->hash, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->stickers, field2); +} +void store_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_photo (D->photo, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->photos, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field2); +} +void store_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->count, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->photos, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field3); +} +void store_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return; } +} +void store_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field2); +} +void store_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->new_messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->new_encrypted_messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->other_updates, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_updates_state (D->state, field6); +} +void store_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->new_messages, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->new_encrypted_messages, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->other_updates, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->chats, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + store_ds_type_vector ((void *)D->users, field5); + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_updates_state (D->intermediate_state, field6); +} +void store_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->pts, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->qts, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->date, field3); + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->seq, field4); + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->unread_count, field5); +} +void store_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_storage_file_type (D->type, field1); + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_int (D->mtime, field2); + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + store_ds_type_bare_bytes (D->bytes, field3); +} +void store_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) { + out_int (0xb8d0afdf); + store_ds_constructor_account_days_t_t_l (D, T); return; +} +void store_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T) { + store_ds_constructor_account_days_t_t_l (D, T); return; +} +void store_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x586988d8: store_ds_constructor_audio_empty (D, T); return; + case 0xc7ac6496: store_ds_constructor_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_audio (struct tl_ds_audio *D, struct paramed_type *T) { + switch (D->magic) { + case 0x586988d8: store_ds_constructor_audio_empty (D, T); return; + case 0xc7ac6496: store_ds_constructor_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T) { + out_int (0x7bf2e6f6); + store_ds_constructor_authorization (D, T); return; +} +void store_ds_type_bare_authorization (struct tl_ds_authorization *D, struct paramed_type *T) { + store_ds_constructor_authorization (D, T); return; +} +void store_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xbc799737: store_ds_constructor_bool_false (D, T); return; + case 0x997275b5: store_ds_constructor_bool_true (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_bool (struct tl_ds_bool *D, struct paramed_type *T) { + switch (D->magic) { + case 0xbc799737: store_ds_constructor_bool_false (D, T); return; + case 0x997275b5: store_ds_constructor_bool_true (D, T); return; + default: assert (0); + } +} +void store_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xc27ac8c7: store_ds_constructor_bot_command (D, T); return; + case 0xb79d22ab: store_ds_constructor_bot_command_old (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc27ac8c7: store_ds_constructor_bot_command (D, T); return; + case 0xb79d22ab: store_ds_constructor_bot_command_old (D, T); return; + default: assert (0); + } +} +void store_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xbb2e37ce: store_ds_constructor_bot_info_empty (D, T); return; + case 0x09cf585d: store_ds_constructor_bot_info (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T) { + switch (D->magic) { + case 0xbb2e37ce: store_ds_constructor_bot_info_empty (D, T); return; + case 0x09cf585d: store_ds_constructor_bot_info (D, T); return; + default: assert (0); + } +} +void store_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T) { + out_int (0x0ee1379f); + store_ds_constructor_bytes (D, T); return; +} +void store_ds_type_bare_bytes (struct tl_ds_string *D, struct paramed_type *T) { + store_ds_constructor_bytes (D, T); return; +} +void store_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x9ba2d800: store_ds_constructor_chat_empty (D, T); return; + case 0x6e9c9bc7: store_ds_constructor_chat (D, T); return; + case 0xfb0ccc41: store_ds_constructor_chat_forbidden (D, T); return; + case 0x75eaea5a: store_ds_constructor_geo_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_chat (struct tl_ds_chat *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9ba2d800: store_ds_constructor_chat_empty (D, T); return; + case 0x6e9c9bc7: store_ds_constructor_chat (D, T); return; + case 0xfb0ccc41: store_ds_constructor_chat_forbidden (D, T); return; + case 0x75eaea5a: store_ds_constructor_geo_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) { + out_int (0x2e02a614); + store_ds_constructor_chat_full (D, T); return; +} +void store_ds_type_bare_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T) { + store_ds_constructor_chat_full (D, T); return; +} +void store_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x5a686d7c: store_ds_constructor_chat_invite_already (D, T); return; + case 0xce917dcd: store_ds_constructor_chat_invite (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5a686d7c: store_ds_constructor_chat_invite_already (D, T); return; + case 0xce917dcd: store_ds_constructor_chat_invite (D, T); return; + default: assert (0); + } +} +void store_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) { + out_int (0x3631cf4c); + store_ds_constructor_chat_located (D, T); return; +} +void store_ds_type_bare_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T) { + store_ds_constructor_chat_located (D, T); return; +} +void store_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) { + out_int (0xc8d7493e); + store_ds_constructor_chat_participant (D, T); return; +} +void store_ds_type_bare_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T) { + store_ds_constructor_chat_participant (D, T); return; +} +void store_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x0fd2bb8a: store_ds_constructor_chat_participants_forbidden (D, T); return; + case 0x7841b415: store_ds_constructor_chat_participants (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0fd2bb8a: store_ds_constructor_chat_participants_forbidden (D, T); return; + case 0x7841b415: store_ds_constructor_chat_participants (D, T); return; + default: assert (0); + } +} +void store_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x37c1011c: store_ds_constructor_chat_photo_empty (D, T); return; + case 0x6153276a: store_ds_constructor_chat_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x37c1011c: store_ds_constructor_chat_photo_empty (D, T); return; + case 0x6153276a: store_ds_constructor_chat_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) { + out_int (0x6643b654); + store_ds_constructor_client_d_h_inner_data (D, T); return; +} +void store_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T) { + store_ds_constructor_client_d_h_inner_data (D, T); return; +} +void store_ds_type_config (struct tl_ds_config *D, struct paramed_type *T) { + out_int (0x4e32b894); + store_ds_constructor_config (D, T); return; +} +void store_ds_type_bare_config (struct tl_ds_config *D, struct paramed_type *T) { + store_ds_constructor_config (D, T); return; +} +void store_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T) { + out_int (0xf911c994); + store_ds_constructor_contact (D, T); return; +} +void store_ds_type_bare_contact (struct tl_ds_contact *D, struct paramed_type *T) { + store_ds_constructor_contact (D, T); return; +} +void store_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) { + out_int (0x561bc879); + store_ds_constructor_contact_blocked (D, T); return; +} +void store_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T) { + store_ds_constructor_contact_blocked (D, T); return; +} +void store_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) { + out_int (0xea879f95); + store_ds_constructor_contact_found (D, T); return; +} +void store_ds_type_bare_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T) { + store_ds_constructor_contact_found (D, T); return; +} +void store_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x5f4f9247: store_ds_constructor_contact_link_unknown (D, T); return; + case 0xfeedd3ad: store_ds_constructor_contact_link_none (D, T); return; + case 0x268f3f59: store_ds_constructor_contact_link_has_phone (D, T); return; + case 0xd502c2d0: store_ds_constructor_contact_link_contact (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5f4f9247: store_ds_constructor_contact_link_unknown (D, T); return; + case 0xfeedd3ad: store_ds_constructor_contact_link_none (D, T); return; + case 0x268f3f59: store_ds_constructor_contact_link_has_phone (D, T); return; + case 0xd502c2d0: store_ds_constructor_contact_link_contact (D, T); return; + default: assert (0); + } +} +void store_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) { + out_int (0xd3680c61); + store_ds_constructor_contact_status (D, T); return; +} +void store_ds_type_bare_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T) { + store_ds_constructor_contact_status (D, T); return; +} +void store_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) { + out_int (0x3de191a1); + store_ds_constructor_contact_suggested (D, T); return; +} +void store_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T) { + store_ds_constructor_contact_suggested (D, T); return; +} +void store_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x2ec2a43c: store_ds_constructor_dc_option_l28 (D, T); return; + case 0x05d8c6cc: store_ds_constructor_dc_option (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T) { + switch (D->magic) { + case 0x2ec2a43c: store_ds_constructor_dc_option_l28 (D, T); return; + case 0x05d8c6cc: store_ds_constructor_dc_option (D, T); return; + default: assert (0); + } +} +void store_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x204d3878: store_ds_constructor_decrypted_message (D, T); return; + case 0x73164160: store_ds_constructor_decrypted_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x204d3878: store_ds_constructor_decrypted_message (D, T); return; + case 0x73164160: store_ds_constructor_decrypted_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xa1733aec: store_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return; + case 0x0c4f40be: store_ds_constructor_decrypted_message_action_read_messages (D, T); return; + case 0x65614304: store_ds_constructor_decrypted_message_action_delete_messages (D, T); return; + case 0x8ac1f475: store_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return; + case 0x6719e45c: store_ds_constructor_decrypted_message_action_flush_history (D, T); return; + case 0x511110b0: store_ds_constructor_decrypted_message_action_resend (D, T); return; + case 0xf3048883: store_ds_constructor_decrypted_message_action_notify_layer (D, T); return; + case 0xccb27641: store_ds_constructor_decrypted_message_action_typing (D, T); return; + case 0xf3c9611b: store_ds_constructor_decrypted_message_action_request_key (D, T); return; + case 0x6fe1735b: store_ds_constructor_decrypted_message_action_accept_key (D, T); return; + case 0xdd05ec6b: store_ds_constructor_decrypted_message_action_abort_key (D, T); return; + case 0xec2e0b9b: store_ds_constructor_decrypted_message_action_commit_key (D, T); return; + case 0xa82fdd63: store_ds_constructor_decrypted_message_action_noop (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0xa1733aec: store_ds_constructor_decrypted_message_action_set_message_t_t_l (D, T); return; + case 0x0c4f40be: store_ds_constructor_decrypted_message_action_read_messages (D, T); return; + case 0x65614304: store_ds_constructor_decrypted_message_action_delete_messages (D, T); return; + case 0x8ac1f475: store_ds_constructor_decrypted_message_action_screenshot_messages (D, T); return; + case 0x6719e45c: store_ds_constructor_decrypted_message_action_flush_history (D, T); return; + case 0x511110b0: store_ds_constructor_decrypted_message_action_resend (D, T); return; + case 0xf3048883: store_ds_constructor_decrypted_message_action_notify_layer (D, T); return; + case 0xccb27641: store_ds_constructor_decrypted_message_action_typing (D, T); return; + case 0xf3c9611b: store_ds_constructor_decrypted_message_action_request_key (D, T); return; + case 0x6fe1735b: store_ds_constructor_decrypted_message_action_accept_key (D, T); return; + case 0xdd05ec6b: store_ds_constructor_decrypted_message_action_abort_key (D, T); return; + case 0xec2e0b9b: store_ds_constructor_decrypted_message_action_commit_key (D, T); return; + case 0xa82fdd63: store_ds_constructor_decrypted_message_action_noop (D, T); return; + default: assert (0); + } +} +void store_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) { + out_int (0x1be31789); + store_ds_constructor_decrypted_message_layer (D, T); return; +} +void store_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T) { + store_ds_constructor_decrypted_message_layer (D, T); return; +} +void store_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x089f5c4a: store_ds_constructor_decrypted_message_media_empty (D, T); return; + case 0x32798a8c: store_ds_constructor_decrypted_message_media_photo (D, T); return; + case 0x35480a59: store_ds_constructor_decrypted_message_media_geo_point (D, T); return; + case 0x588a0a97: store_ds_constructor_decrypted_message_media_contact (D, T); return; + case 0xb095434b: store_ds_constructor_decrypted_message_media_document (D, T); return; + case 0x524a415d: store_ds_constructor_decrypted_message_media_video (D, T); return; + case 0x57e0a9cb: store_ds_constructor_decrypted_message_media_audio (D, T); return; + case 0xfa95b0dd: store_ds_constructor_decrypted_message_media_external_document (D, T); return; + case 0x4cee6ef3: store_ds_constructor_decrypted_message_media_video_l12 (D, T); return; + case 0x6080758f: store_ds_constructor_decrypted_message_media_audio_l12 (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x089f5c4a: store_ds_constructor_decrypted_message_media_empty (D, T); return; + case 0x32798a8c: store_ds_constructor_decrypted_message_media_photo (D, T); return; + case 0x35480a59: store_ds_constructor_decrypted_message_media_geo_point (D, T); return; + case 0x588a0a97: store_ds_constructor_decrypted_message_media_contact (D, T); return; + case 0xb095434b: store_ds_constructor_decrypted_message_media_document (D, T); return; + case 0x524a415d: store_ds_constructor_decrypted_message_media_video (D, T); return; + case 0x57e0a9cb: store_ds_constructor_decrypted_message_media_audio (D, T); return; + case 0xfa95b0dd: store_ds_constructor_decrypted_message_media_external_document (D, T); return; + case 0x4cee6ef3: store_ds_constructor_decrypted_message_media_video_l12 (D, T); return; + case 0x6080758f: store_ds_constructor_decrypted_message_media_audio_l12 (D, T); return; + default: assert (0); + } +} +void store_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T) { + out_int (0xc1dd804a); + store_ds_constructor_dialog (D, T); return; +} +void store_ds_type_bare_dialog (struct tl_ds_dialog *D, struct paramed_type *T) { + store_ds_constructor_dialog (D, T); return; +} +void store_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) { + out_int (0xae636f24); + store_ds_constructor_disabled_feature (D, T); return; +} +void store_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T) { + store_ds_constructor_disabled_feature (D, T); return; +} +void store_ds_type_document (struct tl_ds_document *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x36f8c871: store_ds_constructor_document_empty (D, T); return; + case 0xf9a39f4f: store_ds_constructor_document (D, T); return; + case 0x9efc6326: store_ds_constructor_document_l19 (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_document (struct tl_ds_document *D, struct paramed_type *T) { + switch (D->magic) { + case 0x36f8c871: store_ds_constructor_document_empty (D, T); return; + case 0xf9a39f4f: store_ds_constructor_document (D, T); return; + case 0x9efc6326: store_ds_constructor_document_l19 (D, T); return; + default: assert (0); + } +} +void store_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x6c37c15c: store_ds_constructor_document_attribute_image_size (D, T); return; + case 0x11b58939: store_ds_constructor_document_attribute_animated (D, T); return; + case 0x994c9882: store_ds_constructor_document_attribute_sticker_l28 (D, T); return; + case 0x3a556302: store_ds_constructor_document_attribute_sticker (D, T); return; + case 0x5910cccb: store_ds_constructor_document_attribute_video (D, T); return; + case 0x051448e5: store_ds_constructor_document_attribute_audio (D, T); return; + case 0x15590068: store_ds_constructor_document_attribute_filename (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T) { + switch (D->magic) { + case 0x6c37c15c: store_ds_constructor_document_attribute_image_size (D, T); return; + case 0x11b58939: store_ds_constructor_document_attribute_animated (D, T); return; + case 0x994c9882: store_ds_constructor_document_attribute_sticker_l28 (D, T); return; + case 0x3a556302: store_ds_constructor_document_attribute_sticker (D, T); return; + case 0x5910cccb: store_ds_constructor_document_attribute_video (D, T); return; + case 0x051448e5: store_ds_constructor_document_attribute_audio (D, T); return; + case 0x15590068: store_ds_constructor_document_attribute_filename (D, T); return; + default: assert (0); + } +} +void store_ds_type_double (double *D, struct paramed_type *T) { + out_int (0x2210c154); + store_ds_constructor_double (D, T); return; +} +void store_ds_type_bare_double (double *D, struct paramed_type *T) { + store_ds_constructor_double (D, T); return; +} +void store_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xab7ec0a0: store_ds_constructor_encrypted_chat_empty (D, T); return; + case 0x3bf703dc: store_ds_constructor_encrypted_chat_waiting (D, T); return; + case 0xc878527e: store_ds_constructor_encrypted_chat_requested (D, T); return; + case 0xfa56ce36: store_ds_constructor_encrypted_chat (D, T); return; + case 0x13d6dd27: store_ds_constructor_encrypted_chat_discarded (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T) { + switch (D->magic) { + case 0xab7ec0a0: store_ds_constructor_encrypted_chat_empty (D, T); return; + case 0x3bf703dc: store_ds_constructor_encrypted_chat_waiting (D, T); return; + case 0xc878527e: store_ds_constructor_encrypted_chat_requested (D, T); return; + case 0xfa56ce36: store_ds_constructor_encrypted_chat (D, T); return; + case 0x13d6dd27: store_ds_constructor_encrypted_chat_discarded (D, T); return; + default: assert (0); + } +} +void store_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xc21f497e: store_ds_constructor_encrypted_file_empty (D, T); return; + case 0x4a70994c: store_ds_constructor_encrypted_file (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc21f497e: store_ds_constructor_encrypted_file_empty (D, T); return; + case 0x4a70994c: store_ds_constructor_encrypted_file (D, T); return; + default: assert (0); + } +} +void store_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xed18c118: store_ds_constructor_encrypted_message (D, T); return; + case 0x23734b06: store_ds_constructor_encrypted_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0xed18c118: store_ds_constructor_encrypted_message (D, T); return; + case 0x23734b06: store_ds_constructor_encrypted_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_error (struct tl_ds_error *D, struct paramed_type *T) { + out_int (0xc4b9f9bb); + store_ds_constructor_error (D, T); return; +} +void store_ds_type_bare_error (struct tl_ds_error *D, struct paramed_type *T) { + store_ds_constructor_error (D, T); return; +} +void store_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x69df3769: store_ds_constructor_chat_invite_empty (D, T); return; + case 0xfc2e05bc: store_ds_constructor_chat_invite_exported (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T) { + switch (D->magic) { + case 0x69df3769: store_ds_constructor_chat_invite_empty (D, T); return; + case 0xfc2e05bc: store_ds_constructor_chat_invite_exported (D, T); return; + default: assert (0); + } +} +void store_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x7c596b46: store_ds_constructor_file_location_unavailable (D, T); return; + case 0x53d69076: store_ds_constructor_file_location (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_file_location (struct tl_ds_file_location *D, struct paramed_type *T) { + switch (D->magic) { + case 0x7c596b46: store_ds_constructor_file_location_unavailable (D, T); return; + case 0x53d69076: store_ds_constructor_file_location (D, T); return; + default: assert (0); + } +} +void store_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x60311a9b: store_ds_constructor_geo_chat_message_empty (D, T); return; + case 0x4505f8e1: store_ds_constructor_geo_chat_message (D, T); return; + case 0xd34fa24e: store_ds_constructor_geo_chat_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x60311a9b: store_ds_constructor_geo_chat_message_empty (D, T); return; + case 0x4505f8e1: store_ds_constructor_geo_chat_message (D, T); return; + case 0xd34fa24e: store_ds_constructor_geo_chat_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1117dd5f: store_ds_constructor_geo_point_empty (D, T); return; + case 0x2049d70c: store_ds_constructor_geo_point (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1117dd5f: store_ds_constructor_geo_point_empty (D, T); return; + case 0x2049d70c: store_ds_constructor_geo_point (D, T); return; + default: assert (0); + } +} +void store_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) { + out_int (0xd0028438); + store_ds_constructor_imported_contact (D, T); return; +} +void store_ds_type_bare_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T) { + store_ds_constructor_imported_contact (D, T); return; +} +void store_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) { + out_int (0x770656a8); + store_ds_constructor_input_app_event (D, T); return; +} +void store_ds_type_bare_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T) { + store_ds_constructor_input_app_event (D, T); return; +} +void store_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xd95adc84: store_ds_constructor_input_audio_empty (D, T); return; + case 0x77d440ff: store_ds_constructor_input_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T) { + switch (D->magic) { + case 0xd95adc84: store_ds_constructor_input_audio_empty (D, T); return; + case 0x77d440ff: store_ds_constructor_input_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1ca48f57: store_ds_constructor_input_chat_photo_empty (D, T); return; + case 0x94254732: store_ds_constructor_input_chat_uploaded_photo (D, T); return; + case 0xb2e1bf08: store_ds_constructor_input_chat_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1ca48f57: store_ds_constructor_input_chat_photo_empty (D, T); return; + case 0x94254732: store_ds_constructor_input_chat_uploaded_photo (D, T); return; + case 0xb2e1bf08: store_ds_constructor_input_chat_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) { + out_int (0xf392b7f4); + store_ds_constructor_input_phone_contact (D, T); return; +} +void store_ds_type_bare_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T) { + store_ds_constructor_input_phone_contact (D, T); return; +} +void store_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x72f0eaae: store_ds_constructor_input_document_empty (D, T); return; + case 0x18798952: store_ds_constructor_input_document (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_document (struct tl_ds_input_document *D, struct paramed_type *T) { + switch (D->magic) { + case 0x72f0eaae: store_ds_constructor_input_document_empty (D, T); return; + case 0x18798952: store_ds_constructor_input_document (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) { + out_int (0xf141b5e1); + store_ds_constructor_input_encrypted_chat (D, T); return; +} +void store_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T) { + store_ds_constructor_input_encrypted_chat (D, T); return; +} +void store_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1837c364: store_ds_constructor_input_encrypted_file_empty (D, T); return; + case 0x64bd0306: store_ds_constructor_input_encrypted_file_uploaded (D, T); return; + case 0x5a17b5e5: store_ds_constructor_input_encrypted_file (D, T); return; + case 0x2dc173c8: store_ds_constructor_input_encrypted_file_big_uploaded (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1837c364: store_ds_constructor_input_encrypted_file_empty (D, T); return; + case 0x64bd0306: store_ds_constructor_input_encrypted_file_uploaded (D, T); return; + case 0x5a17b5e5: store_ds_constructor_input_encrypted_file (D, T); return; + case 0x2dc173c8: store_ds_constructor_input_encrypted_file_big_uploaded (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xf52ff27f: store_ds_constructor_input_file (D, T); return; + case 0xfa4f0bb5: store_ds_constructor_input_file_big (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_file (struct tl_ds_input_file *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf52ff27f: store_ds_constructor_input_file (D, T); return; + case 0xfa4f0bb5: store_ds_constructor_input_file_big (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x14637196: store_ds_constructor_input_file_location (D, T); return; + case 0x3d0364ec: store_ds_constructor_input_video_file_location (D, T); return; + case 0xf5235d55: store_ds_constructor_input_encrypted_file_location (D, T); return; + case 0x74dc404d: store_ds_constructor_input_audio_file_location (D, T); return; + case 0x4e45abe9: store_ds_constructor_input_document_file_location (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T) { + switch (D->magic) { + case 0x14637196: store_ds_constructor_input_file_location (D, T); return; + case 0x3d0364ec: store_ds_constructor_input_video_file_location (D, T); return; + case 0xf5235d55: store_ds_constructor_input_encrypted_file_location (D, T); return; + case 0x74dc404d: store_ds_constructor_input_audio_file_location (D, T); return; + case 0x4e45abe9: store_ds_constructor_input_document_file_location (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) { + out_int (0x74d456fa); + store_ds_constructor_input_geo_chat (D, T); return; +} +void store_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T) { + store_ds_constructor_input_geo_chat (D, T); return; +} +void store_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xe4c123d6: store_ds_constructor_input_geo_point_empty (D, T); return; + case 0xf3b7acc9: store_ds_constructor_input_geo_point (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe4c123d6: store_ds_constructor_input_geo_point_empty (D, T); return; + case 0xf3b7acc9: store_ds_constructor_input_geo_point (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x9664f57f: store_ds_constructor_input_media_empty (D, T); return; + case 0xf7aff1c0: store_ds_constructor_input_media_uploaded_photo (D, T); return; + case 0xe9bfb4f3: store_ds_constructor_input_media_photo (D, T); return; + case 0xf9c44144: store_ds_constructor_input_media_geo_point (D, T); return; + case 0xa6e45987: store_ds_constructor_input_media_contact (D, T); return; + case 0xe13fd4bc: store_ds_constructor_input_media_uploaded_video (D, T); return; + case 0x96fb97dc: store_ds_constructor_input_media_uploaded_thumb_video (D, T); return; + case 0x936a4ebd: store_ds_constructor_input_media_video (D, T); return; + case 0x4e498cab: store_ds_constructor_input_media_uploaded_audio (D, T); return; + case 0x89938781: store_ds_constructor_input_media_audio (D, T); return; + case 0xffe76b78: store_ds_constructor_input_media_uploaded_document (D, T); return; + case 0x41481486: store_ds_constructor_input_media_uploaded_thumb_document (D, T); return; + case 0xd184e841: store_ds_constructor_input_media_document (D, T); return; + case 0x2827a81a: store_ds_constructor_input_media_venue (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_media (struct tl_ds_input_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9664f57f: store_ds_constructor_input_media_empty (D, T); return; + case 0xf7aff1c0: store_ds_constructor_input_media_uploaded_photo (D, T); return; + case 0xe9bfb4f3: store_ds_constructor_input_media_photo (D, T); return; + case 0xf9c44144: store_ds_constructor_input_media_geo_point (D, T); return; + case 0xa6e45987: store_ds_constructor_input_media_contact (D, T); return; + case 0xe13fd4bc: store_ds_constructor_input_media_uploaded_video (D, T); return; + case 0x96fb97dc: store_ds_constructor_input_media_uploaded_thumb_video (D, T); return; + case 0x936a4ebd: store_ds_constructor_input_media_video (D, T); return; + case 0x4e498cab: store_ds_constructor_input_media_uploaded_audio (D, T); return; + case 0x89938781: store_ds_constructor_input_media_audio (D, T); return; + case 0xffe76b78: store_ds_constructor_input_media_uploaded_document (D, T); return; + case 0x41481486: store_ds_constructor_input_media_uploaded_thumb_document (D, T); return; + case 0xd184e841: store_ds_constructor_input_media_document (D, T); return; + case 0x2827a81a: store_ds_constructor_input_media_venue (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xb8bc5b0c: store_ds_constructor_input_notify_peer (D, T); return; + case 0x193b4417: store_ds_constructor_input_notify_users (D, T); return; + case 0x4a95e84e: store_ds_constructor_input_notify_chats (D, T); return; + case 0xa429b886: store_ds_constructor_input_notify_all (D, T); return; + case 0x4d8ddec8: store_ds_constructor_input_notify_geo_chat_peer (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb8bc5b0c: store_ds_constructor_input_notify_peer (D, T); return; + case 0x193b4417: store_ds_constructor_input_notify_users (D, T); return; + case 0x4a95e84e: store_ds_constructor_input_notify_chats (D, T); return; + case 0xa429b886: store_ds_constructor_input_notify_all (D, T); return; + case 0x4d8ddec8: store_ds_constructor_input_notify_geo_chat_peer (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x7f3b18ea: store_ds_constructor_input_peer_empty (D, T); return; + case 0x7da07ec9: store_ds_constructor_input_peer_self (D, T); return; + case 0x1023dbe8: store_ds_constructor_input_peer_contact (D, T); return; + case 0x9b447325: store_ds_constructor_input_peer_foreign (D, T); return; + case 0x179be863: store_ds_constructor_input_peer_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x7f3b18ea: store_ds_constructor_input_peer_empty (D, T); return; + case 0x7da07ec9: store_ds_constructor_input_peer_self (D, T); return; + case 0x1023dbe8: store_ds_constructor_input_peer_contact (D, T); return; + case 0x9b447325: store_ds_constructor_input_peer_foreign (D, T); return; + case 0x179be863: store_ds_constructor_input_peer_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xf03064d8: store_ds_constructor_input_peer_notify_events_empty (D, T); return; + case 0xe86a2c74: store_ds_constructor_input_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf03064d8: store_ds_constructor_input_peer_notify_events_empty (D, T); return; + case 0xe86a2c74: store_ds_constructor_input_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) { + out_int (0x46a2ce98); + store_ds_constructor_input_peer_notify_settings (D, T); return; +} +void store_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T) { + store_ds_constructor_input_peer_notify_settings (D, T); return; +} +void store_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1cd7bf0d: store_ds_constructor_input_photo_empty (D, T); return; + case 0xfb95c6c4: store_ds_constructor_input_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1cd7bf0d: store_ds_constructor_input_photo_empty (D, T); return; + case 0xfb95c6c4: store_ds_constructor_input_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xade6b004: store_ds_constructor_input_photo_crop_auto (D, T); return; + case 0xd9915325: store_ds_constructor_input_photo_crop (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T) { + switch (D->magic) { + case 0xade6b004: store_ds_constructor_input_photo_crop_auto (D, T); return; + case 0xd9915325: store_ds_constructor_input_photo_crop (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) { + out_int (0x4f96cb18); + store_ds_constructor_input_privacy_key_status_timestamp (D, T); return; +} +void store_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T) { + store_ds_constructor_input_privacy_key_status_timestamp (D, T); return; +} +void store_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x0d09e07b: store_ds_constructor_input_privacy_value_allow_contacts (D, T); return; + case 0x184b35ce: store_ds_constructor_input_privacy_value_allow_all (D, T); return; + case 0x131cc67f: store_ds_constructor_input_privacy_value_allow_users (D, T); return; + case 0x0ba52007: store_ds_constructor_input_privacy_value_disallow_contacts (D, T); return; + case 0xd66b66c9: store_ds_constructor_input_privacy_value_disallow_all (D, T); return; + case 0x90110467: store_ds_constructor_input_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0d09e07b: store_ds_constructor_input_privacy_value_allow_contacts (D, T); return; + case 0x184b35ce: store_ds_constructor_input_privacy_value_allow_all (D, T); return; + case 0x131cc67f: store_ds_constructor_input_privacy_value_allow_users (D, T); return; + case 0x0ba52007: store_ds_constructor_input_privacy_value_disallow_contacts (D, T); return; + case 0xd66b66c9: store_ds_constructor_input_privacy_value_disallow_all (D, T); return; + case 0x90110467: store_ds_constructor_input_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xffb62b95: store_ds_constructor_input_sticker_set_empty (D, T); return; + case 0x9de7a269: store_ds_constructor_input_sticker_set_i_d (D, T); return; + case 0x861cc8a0: store_ds_constructor_input_sticker_set_short_name (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T) { + switch (D->magic) { + case 0xffb62b95: store_ds_constructor_input_sticker_set_empty (D, T); return; + case 0x9de7a269: store_ds_constructor_input_sticker_set_i_d (D, T); return; + case 0x861cc8a0: store_ds_constructor_input_sticker_set_short_name (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xb98886cf: store_ds_constructor_input_user_empty (D, T); return; + case 0xf7c1b13f: store_ds_constructor_input_user_self (D, T); return; + case 0x86e94f65: store_ds_constructor_input_user_contact (D, T); return; + case 0x655e74ff: store_ds_constructor_input_user_foreign (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_user (struct tl_ds_input_user *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb98886cf: store_ds_constructor_input_user_empty (D, T); return; + case 0xf7c1b13f: store_ds_constructor_input_user_self (D, T); return; + case 0x86e94f65: store_ds_constructor_input_user_contact (D, T); return; + case 0x655e74ff: store_ds_constructor_input_user_foreign (D, T); return; + default: assert (0); + } +} +void store_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x5508ec75: store_ds_constructor_input_video_empty (D, T); return; + case 0xee579652: store_ds_constructor_input_video (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_input_video (struct tl_ds_input_video *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5508ec75: store_ds_constructor_input_video_empty (D, T); return; + case 0xee579652: store_ds_constructor_input_video (D, T); return; + default: assert (0); + } +} +void store_ds_type_int (int *D, struct paramed_type *T) { + out_int (0xa8509bda); + store_ds_constructor_int (D, T); return; +} +void store_ds_type_bare_int (int *D, struct paramed_type *T) { + store_ds_constructor_int (D, T); return; +} +void store_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T) { + out_int (0x7d36c439); + store_ds_constructor_int128 (D, T); return; +} +void store_ds_type_bare_int128 (struct tl_ds_int128 *D, struct paramed_type *T) { + store_ds_constructor_int128 (D, T); return; +} +void store_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T) { + out_int (0xf2c798b3); + store_ds_constructor_int256 (D, T); return; +} +void store_ds_type_bare_int256 (struct tl_ds_int256 *D, struct paramed_type *T) { + store_ds_constructor_int256 (D, T); return; +} +void store_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) { + out_int (0xa2fa4880); + store_ds_constructor_keyboard_button (D, T); return; +} +void store_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T) { + store_ds_constructor_keyboard_button (D, T); return; +} +void store_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) { + out_int (0x77608b83); + store_ds_constructor_keyboard_button_row (D, T); return; +} +void store_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T) { + store_ds_constructor_keyboard_button_row (D, T); return; +} +void store_ds_type_long (long long *D, struct paramed_type *T) { + out_int (0x22076cba); + store_ds_constructor_long (D, T); return; +} +void store_ds_type_bare_long (long long *D, struct paramed_type *T) { + store_ds_constructor_long (D, T); return; +} +void store_ds_type_message (struct tl_ds_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x83e5de54: store_ds_constructor_message_empty (D, T); return; + case 0xc3060325: store_ds_constructor_message (D, T); return; + case 0x1d86f70e: store_ds_constructor_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_message (struct tl_ds_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x83e5de54: store_ds_constructor_message_empty (D, T); return; + case 0xc3060325: store_ds_constructor_message (D, T); return; + case 0x1d86f70e: store_ds_constructor_message_service (D, T); return; + default: assert (0); + } +} +void store_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xb6aef7b0: store_ds_constructor_message_action_empty (D, T); return; + case 0xa6638b9a: store_ds_constructor_message_action_chat_create (D, T); return; + case 0xb5a1ce5a: store_ds_constructor_message_action_chat_edit_title (D, T); return; + case 0x7fcb13a8: store_ds_constructor_message_action_chat_edit_photo (D, T); return; + case 0x95e3fbef: store_ds_constructor_message_action_chat_delete_photo (D, T); return; + case 0x5e3cfc4b: store_ds_constructor_message_action_chat_add_user (D, T); return; + case 0xb2ae9b0c: store_ds_constructor_message_action_chat_delete_user (D, T); return; + case 0x6f038ebc: store_ds_constructor_message_action_geo_chat_create (D, T); return; + case 0x0c7d53de: store_ds_constructor_message_action_geo_chat_checkin (D, T); return; + case 0xf89cf5e8: store_ds_constructor_message_action_chat_joined_by_link (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_message_action (struct tl_ds_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb6aef7b0: store_ds_constructor_message_action_empty (D, T); return; + case 0xa6638b9a: store_ds_constructor_message_action_chat_create (D, T); return; + case 0xb5a1ce5a: store_ds_constructor_message_action_chat_edit_title (D, T); return; + case 0x7fcb13a8: store_ds_constructor_message_action_chat_edit_photo (D, T); return; + case 0x95e3fbef: store_ds_constructor_message_action_chat_delete_photo (D, T); return; + case 0x5e3cfc4b: store_ds_constructor_message_action_chat_add_user (D, T); return; + case 0xb2ae9b0c: store_ds_constructor_message_action_chat_delete_user (D, T); return; + case 0x6f038ebc: store_ds_constructor_message_action_geo_chat_create (D, T); return; + case 0x0c7d53de: store_ds_constructor_message_action_geo_chat_checkin (D, T); return; + case 0xf89cf5e8: store_ds_constructor_message_action_chat_joined_by_link (D, T); return; + default: assert (0); + } +} +void store_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x3ded6320: store_ds_constructor_message_media_empty (D, T); return; + case 0x3d8ce53d: store_ds_constructor_message_media_photo (D, T); return; + case 0x5bcf1675: store_ds_constructor_message_media_video (D, T); return; + case 0x56e0d474: store_ds_constructor_message_media_geo (D, T); return; + case 0x5e7d2f39: store_ds_constructor_message_media_contact (D, T); return; + case 0x9f84f49e: store_ds_constructor_message_media_unsupported (D, T); return; + case 0x2fda2204: store_ds_constructor_message_media_document (D, T); return; + case 0xc6b68300: store_ds_constructor_message_media_audio (D, T); return; + case 0xa32dd600: store_ds_constructor_message_media_web_page (D, T); return; + case 0x7912b71f: store_ds_constructor_message_media_venue (D, T); return; + case 0xc8c45a2a: store_ds_constructor_message_media_photo_l27 (D, T); return; + case 0xa2d24290: store_ds_constructor_message_media_video_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_message_media (struct tl_ds_message_media *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3ded6320: store_ds_constructor_message_media_empty (D, T); return; + case 0x3d8ce53d: store_ds_constructor_message_media_photo (D, T); return; + case 0x5bcf1675: store_ds_constructor_message_media_video (D, T); return; + case 0x56e0d474: store_ds_constructor_message_media_geo (D, T); return; + case 0x5e7d2f39: store_ds_constructor_message_media_contact (D, T); return; + case 0x9f84f49e: store_ds_constructor_message_media_unsupported (D, T); return; + case 0x2fda2204: store_ds_constructor_message_media_document (D, T); return; + case 0xc6b68300: store_ds_constructor_message_media_audio (D, T); return; + case 0xa32dd600: store_ds_constructor_message_media_web_page (D, T); return; + case 0x7912b71f: store_ds_constructor_message_media_venue (D, T); return; + case 0xc8c45a2a: store_ds_constructor_message_media_photo_l27 (D, T); return; + case 0xa2d24290: store_ds_constructor_message_media_video_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x57e2f66c: store_ds_constructor_input_messages_filter_empty (D, T); return; + case 0x9609a51c: store_ds_constructor_input_messages_filter_photos (D, T); return; + case 0x9fc00e65: store_ds_constructor_input_messages_filter_video (D, T); return; + case 0x56e9f0e4: store_ds_constructor_input_messages_filter_photo_video (D, T); return; + case 0xd95e73bb: store_ds_constructor_input_messages_filter_photo_video_documents (D, T); return; + case 0x9eddf188: store_ds_constructor_input_messages_filter_document (D, T); return; + case 0xcfc87522: store_ds_constructor_input_messages_filter_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T) { + switch (D->magic) { + case 0x57e2f66c: store_ds_constructor_input_messages_filter_empty (D, T); return; + case 0x9609a51c: store_ds_constructor_input_messages_filter_photos (D, T); return; + case 0x9fc00e65: store_ds_constructor_input_messages_filter_video (D, T); return; + case 0x56e9f0e4: store_ds_constructor_input_messages_filter_photo_video (D, T); return; + case 0xd95e73bb: store_ds_constructor_input_messages_filter_photo_video_documents (D, T); return; + case 0x9eddf188: store_ds_constructor_input_messages_filter_document (D, T); return; + case 0xcfc87522: store_ds_constructor_input_messages_filter_audio (D, T); return; + default: assert (0); + } +} +void store_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) { + out_int (0x8e1a1775); + store_ds_constructor_nearest_dc (D, T); return; +} +void store_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T) { + store_ds_constructor_nearest_dc (D, T); return; +} +void store_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x9fd40bd8: store_ds_constructor_notify_peer (D, T); return; + case 0xb4c83b4c: store_ds_constructor_notify_users (D, T); return; + case 0xc007cec3: store_ds_constructor_notify_chats (D, T); return; + case 0x74d07c60: store_ds_constructor_notify_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9fd40bd8: store_ds_constructor_notify_peer (D, T); return; + case 0xb4c83b4c: store_ds_constructor_notify_users (D, T); return; + case 0xc007cec3: store_ds_constructor_notify_chats (D, T); return; + case 0x74d07c60: store_ds_constructor_notify_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_null (struct tl_ds_null *D, struct paramed_type *T) { + out_int (0x56730bcc); + store_ds_constructor_null (D, T); return; +} +void store_ds_type_bare_null (struct tl_ds_null *D, struct paramed_type *T) { + store_ds_constructor_null (D, T); return; +} +void store_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x83c95aec: store_ds_constructor_p_q_inner_data (D, T); return; + case 0x3c6a84d4: store_ds_constructor_p_q_inner_data_temp (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T) { + switch (D->magic) { + case 0x83c95aec: store_ds_constructor_p_q_inner_data (D, T); return; + case 0x3c6a84d4: store_ds_constructor_p_q_inner_data_temp (D, T); return; + default: assert (0); + } +} +void store_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x9db1bc6d: store_ds_constructor_peer_user (D, T); return; + case 0xbad0e5bb: store_ds_constructor_peer_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_peer (struct tl_ds_peer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x9db1bc6d: store_ds_constructor_peer_user (D, T); return; + case 0xbad0e5bb: store_ds_constructor_peer_chat (D, T); return; + default: assert (0); + } +} +void store_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xadd53cb3: store_ds_constructor_peer_notify_events_empty (D, T); return; + case 0x6d1ded88: store_ds_constructor_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T) { + switch (D->magic) { + case 0xadd53cb3: store_ds_constructor_peer_notify_events_empty (D, T); return; + case 0x6d1ded88: store_ds_constructor_peer_notify_events_all (D, T); return; + default: assert (0); + } +} +void store_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x70a68512: store_ds_constructor_peer_notify_settings_empty (D, T); return; + case 0x8d5e11ee: store_ds_constructor_peer_notify_settings (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T) { + switch (D->magic) { + case 0x70a68512: store_ds_constructor_peer_notify_settings_empty (D, T); return; + case 0x8d5e11ee: store_ds_constructor_peer_notify_settings (D, T); return; + default: assert (0); + } +} +void store_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x2331b22d: store_ds_constructor_photo_empty (D, T); return; + case 0xc3838076: store_ds_constructor_photo (D, T); return; + case 0x22b56751: store_ds_constructor_photo_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_photo (struct tl_ds_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x2331b22d: store_ds_constructor_photo_empty (D, T); return; + case 0xc3838076: store_ds_constructor_photo (D, T); return; + case 0x22b56751: store_ds_constructor_photo_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x0e17e23c: store_ds_constructor_photo_size_empty (D, T); return; + case 0x77bfb61b: store_ds_constructor_photo_size (D, T); return; + case 0xe9a734fa: store_ds_constructor_photo_cached_size (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T) { + switch (D->magic) { + case 0x0e17e23c: store_ds_constructor_photo_size_empty (D, T); return; + case 0x77bfb61b: store_ds_constructor_photo_size (D, T); return; + case 0xe9a734fa: store_ds_constructor_photo_cached_size (D, T); return; + default: assert (0); + } +} +void store_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) { + out_int (0xbc2eab30); + store_ds_constructor_privacy_key_status_timestamp (D, T); return; +} +void store_ds_type_bare_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T) { + store_ds_constructor_privacy_key_status_timestamp (D, T); return; +} +void store_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xfffe1bac: store_ds_constructor_privacy_value_allow_contacts (D, T); return; + case 0x65427b82: store_ds_constructor_privacy_value_allow_all (D, T); return; + case 0x4d5bbe0c: store_ds_constructor_privacy_value_allow_users (D, T); return; + case 0xf888fa1a: store_ds_constructor_privacy_value_disallow_contacts (D, T); return; + case 0x8b73e763: store_ds_constructor_privacy_value_disallow_all (D, T); return; + case 0x0c7f49b7: store_ds_constructor_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T) { + switch (D->magic) { + case 0xfffe1bac: store_ds_constructor_privacy_value_allow_contacts (D, T); return; + case 0x65427b82: store_ds_constructor_privacy_value_allow_all (D, T); return; + case 0x4d5bbe0c: store_ds_constructor_privacy_value_allow_users (D, T); return; + case 0xf888fa1a: store_ds_constructor_privacy_value_disallow_contacts (D, T); return; + case 0x8b73e763: store_ds_constructor_privacy_value_disallow_all (D, T); return; + case 0x0c7f49b7: store_ds_constructor_privacy_value_disallow_users (D, T); return; + default: assert (0); + } +} +void store_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) { + out_int (0xa384b779); + store_ds_constructor_received_notify_message (D, T); return; +} +void store_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T) { + store_ds_constructor_received_notify_message (D, T); return; +} +void store_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xa03e5b85: store_ds_constructor_reply_keyboard_hide (D, T); return; + case 0xf4108aa0: store_ds_constructor_reply_keyboard_force_reply (D, T); return; + case 0x3502758c: store_ds_constructor_reply_keyboard_markup (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T) { + switch (D->magic) { + case 0xa03e5b85: store_ds_constructor_reply_keyboard_hide (D, T); return; + case 0xf4108aa0: store_ds_constructor_reply_keyboard_force_reply (D, T); return; + case 0x3502758c: store_ds_constructor_reply_keyboard_markup (D, T); return; + default: assert (0); + } +} +void store_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) { + out_int (0x05162463); + store_ds_constructor_res_p_q (D, T); return; +} +void store_ds_type_bare_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T) { + store_ds_constructor_res_p_q (D, T); return; +} +void store_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x16bf744e: store_ds_constructor_send_message_typing_action (D, T); return; + case 0xfd5ec8f5: store_ds_constructor_send_message_cancel_action (D, T); return; + case 0xa187d66f: store_ds_constructor_send_message_record_video_action (D, T); return; + case 0x92042ff7: store_ds_constructor_send_message_upload_video_action_l27 (D, T); return; + case 0xe9763aec: store_ds_constructor_send_message_upload_video_action (D, T); return; + case 0xd52f73f7: store_ds_constructor_send_message_record_audio_action (D, T); return; + case 0xe6ac8a6f: store_ds_constructor_send_message_upload_audio_action_l27 (D, T); return; + case 0xf351d7ab: store_ds_constructor_send_message_upload_audio_action (D, T); return; + case 0xd1d34a26: store_ds_constructor_send_message_upload_photo_action (D, T); return; + case 0x8faee98e: store_ds_constructor_send_message_upload_document_action_l27 (D, T); return; + case 0xaa0cd9e4: store_ds_constructor_send_message_upload_document_action (D, T); return; + case 0x176f8ba1: store_ds_constructor_send_message_geo_location_action (D, T); return; + case 0x628cbc6f: store_ds_constructor_send_message_choose_contact_action (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T) { + switch (D->magic) { + case 0x16bf744e: store_ds_constructor_send_message_typing_action (D, T); return; + case 0xfd5ec8f5: store_ds_constructor_send_message_cancel_action (D, T); return; + case 0xa187d66f: store_ds_constructor_send_message_record_video_action (D, T); return; + case 0x92042ff7: store_ds_constructor_send_message_upload_video_action_l27 (D, T); return; + case 0xe9763aec: store_ds_constructor_send_message_upload_video_action (D, T); return; + case 0xd52f73f7: store_ds_constructor_send_message_record_audio_action (D, T); return; + case 0xe6ac8a6f: store_ds_constructor_send_message_upload_audio_action_l27 (D, T); return; + case 0xf351d7ab: store_ds_constructor_send_message_upload_audio_action (D, T); return; + case 0xd1d34a26: store_ds_constructor_send_message_upload_photo_action (D, T); return; + case 0x8faee98e: store_ds_constructor_send_message_upload_document_action_l27 (D, T); return; + case 0xaa0cd9e4: store_ds_constructor_send_message_upload_document_action (D, T); return; + case 0x176f8ba1: store_ds_constructor_send_message_geo_location_action (D, T); return; + case 0x628cbc6f: store_ds_constructor_send_message_choose_contact_action (D, T); return; + default: assert (0); + } +} +void store_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x79cb045d: store_ds_constructor_server_d_h_params_fail (D, T); return; + case 0xd0e8075c: store_ds_constructor_server_d_h_params_ok (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T) { + switch (D->magic) { + case 0x79cb045d: store_ds_constructor_server_d_h_params_fail (D, T); return; + case 0xd0e8075c: store_ds_constructor_server_d_h_params_ok (D, T); return; + default: assert (0); + } +} +void store_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) { + out_int (0xb5890dba); + store_ds_constructor_server_d_h_inner_data (D, T); return; +} +void store_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T) { + store_ds_constructor_server_d_h_inner_data (D, T); return; +} +void store_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x3bcbf734: store_ds_constructor_dh_gen_ok (D, T); return; + case 0x46dc1fb9: store_ds_constructor_dh_gen_retry (D, T); return; + case 0xa69dae02: store_ds_constructor_dh_gen_fail (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3bcbf734: store_ds_constructor_dh_gen_ok (D, T); return; + case 0x46dc1fb9: store_ds_constructor_dh_gen_retry (D, T); return; + case 0xa69dae02: store_ds_constructor_dh_gen_fail (D, T); return; + default: assert (0); + } +} +void store_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) { + out_int (0x12b299d4); + store_ds_constructor_sticker_pack (D, T); return; +} +void store_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T) { + store_ds_constructor_sticker_pack (D, T); return; +} +void store_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) { + out_int (0xa7a43b17); + store_ds_constructor_sticker_set (D, T); return; +} +void store_ds_type_bare_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T) { + store_ds_constructor_sticker_set (D, T); return; +} +void store_ds_type_string (struct tl_ds_string *D, struct paramed_type *T) { + out_int (0xb5286e24); + store_ds_constructor_string (D, T); return; +} +void store_ds_type_bare_string (struct tl_ds_string *D, struct paramed_type *T) { + store_ds_constructor_string (D, T); return; +} +void store_ds_type_update (struct tl_ds_update *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1f2b0afd: store_ds_constructor_update_new_message (D, T); return; + case 0x4e90bfd6: store_ds_constructor_update_message_i_d (D, T); return; + case 0xa20db0e5: store_ds_constructor_update_delete_messages (D, T); return; + case 0x5c486927: store_ds_constructor_update_user_typing (D, T); return; + case 0x9a65ea1f: store_ds_constructor_update_chat_user_typing (D, T); return; + case 0x07761198: store_ds_constructor_update_chat_participants (D, T); return; + case 0x1bfbd823: store_ds_constructor_update_user_status (D, T); return; + case 0xa7332b73: store_ds_constructor_update_user_name (D, T); return; + case 0x95313b0c: store_ds_constructor_update_user_photo (D, T); return; + case 0x2575bbb9: store_ds_constructor_update_contact_registered (D, T); return; + case 0x9d2e67c5: store_ds_constructor_update_contact_link (D, T); return; + case 0x8f06529a: store_ds_constructor_update_new_authorization (D, T); return; + case 0x5a68e3f7: store_ds_constructor_update_new_geo_chat_message (D, T); return; + case 0x12bcbd9a: store_ds_constructor_update_new_encrypted_message (D, T); return; + case 0x1710f156: store_ds_constructor_update_encrypted_chat_typing (D, T); return; + case 0xb4a2e88d: store_ds_constructor_update_encryption (D, T); return; + case 0x38fe25b7: store_ds_constructor_update_encrypted_messages_read (D, T); return; + case 0x3a0eeb22: store_ds_constructor_update_chat_participant_add (D, T); return; + case 0x6e5f8c22: store_ds_constructor_update_chat_participant_delete (D, T); return; + case 0x8e5e9873: store_ds_constructor_update_dc_options (D, T); return; + case 0x80ece81a: store_ds_constructor_update_user_blocked (D, T); return; + case 0xbec268ef: store_ds_constructor_update_notify_settings (D, T); return; + case 0x382dd3e4: store_ds_constructor_update_service_notification (D, T); return; + case 0xee3b272a: store_ds_constructor_update_privacy (D, T); return; + case 0x12b9417b: store_ds_constructor_update_user_phone (D, T); return; + case 0x9961fd5c: store_ds_constructor_update_read_history_inbox (D, T); return; + case 0x2f2f21bf: store_ds_constructor_update_read_history_outbox (D, T); return; + case 0x2cc36971: store_ds_constructor_update_web_page (D, T); return; + case 0x68c13933: store_ds_constructor_update_read_messages_contents (D, T); return; + case 0x03114739: store_ds_constructor_update_msg_update (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_update (struct tl_ds_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1f2b0afd: store_ds_constructor_update_new_message (D, T); return; + case 0x4e90bfd6: store_ds_constructor_update_message_i_d (D, T); return; + case 0xa20db0e5: store_ds_constructor_update_delete_messages (D, T); return; + case 0x5c486927: store_ds_constructor_update_user_typing (D, T); return; + case 0x9a65ea1f: store_ds_constructor_update_chat_user_typing (D, T); return; + case 0x07761198: store_ds_constructor_update_chat_participants (D, T); return; + case 0x1bfbd823: store_ds_constructor_update_user_status (D, T); return; + case 0xa7332b73: store_ds_constructor_update_user_name (D, T); return; + case 0x95313b0c: store_ds_constructor_update_user_photo (D, T); return; + case 0x2575bbb9: store_ds_constructor_update_contact_registered (D, T); return; + case 0x9d2e67c5: store_ds_constructor_update_contact_link (D, T); return; + case 0x8f06529a: store_ds_constructor_update_new_authorization (D, T); return; + case 0x5a68e3f7: store_ds_constructor_update_new_geo_chat_message (D, T); return; + case 0x12bcbd9a: store_ds_constructor_update_new_encrypted_message (D, T); return; + case 0x1710f156: store_ds_constructor_update_encrypted_chat_typing (D, T); return; + case 0xb4a2e88d: store_ds_constructor_update_encryption (D, T); return; + case 0x38fe25b7: store_ds_constructor_update_encrypted_messages_read (D, T); return; + case 0x3a0eeb22: store_ds_constructor_update_chat_participant_add (D, T); return; + case 0x6e5f8c22: store_ds_constructor_update_chat_participant_delete (D, T); return; + case 0x8e5e9873: store_ds_constructor_update_dc_options (D, T); return; + case 0x80ece81a: store_ds_constructor_update_user_blocked (D, T); return; + case 0xbec268ef: store_ds_constructor_update_notify_settings (D, T); return; + case 0x382dd3e4: store_ds_constructor_update_service_notification (D, T); return; + case 0xee3b272a: store_ds_constructor_update_privacy (D, T); return; + case 0x12b9417b: store_ds_constructor_update_user_phone (D, T); return; + case 0x9961fd5c: store_ds_constructor_update_read_history_inbox (D, T); return; + case 0x2f2f21bf: store_ds_constructor_update_read_history_outbox (D, T); return; + case 0x2cc36971: store_ds_constructor_update_web_page (D, T); return; + case 0x68c13933: store_ds_constructor_update_read_messages_contents (D, T); return; + case 0x03114739: store_ds_constructor_update_msg_update (D, T); return; + default: assert (0); + } +} +void store_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xe317af7e: store_ds_constructor_updates_too_long (D, T); return; + case 0xed5c2127: store_ds_constructor_update_short_message (D, T); return; + case 0x52238b3c: store_ds_constructor_update_short_chat_message (D, T); return; + case 0x78d4dec1: store_ds_constructor_update_short (D, T); return; + case 0x725b04c3: store_ds_constructor_updates_combined (D, T); return; + case 0x74ae4240: store_ds_constructor_updates (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_updates (struct tl_ds_updates *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe317af7e: store_ds_constructor_updates_too_long (D, T); return; + case 0xed5c2127: store_ds_constructor_update_short_message (D, T); return; + case 0x52238b3c: store_ds_constructor_update_short_chat_message (D, T); return; + case 0x78d4dec1: store_ds_constructor_update_short (D, T); return; + case 0x725b04c3: store_ds_constructor_updates_combined (D, T); return; + case 0x74ae4240: store_ds_constructor_updates (D, T); return; + default: assert (0); + } +} +void store_ds_type_user (struct tl_ds_user *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x200250ba: store_ds_constructor_user_empty (D, T); return; + case 0x22e49072: store_ds_constructor_user (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_user (struct tl_ds_user *D, struct paramed_type *T) { + switch (D->magic) { + case 0x200250ba: store_ds_constructor_user_empty (D, T); return; + case 0x22e49072: store_ds_constructor_user (D, T); return; + default: assert (0); + } +} +void store_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T) { + out_int (0x5a89ac5b); + store_ds_constructor_user_full (D, T); return; +} +void store_ds_type_bare_user_full (struct tl_ds_user_full *D, struct paramed_type *T) { + store_ds_constructor_user_full (D, T); return; +} +void store_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x4f11bae1: store_ds_constructor_user_profile_photo_empty (D, T); return; + case 0xd559d8c8: store_ds_constructor_user_profile_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T) { + switch (D->magic) { + case 0x4f11bae1: store_ds_constructor_user_profile_photo_empty (D, T); return; + case 0xd559d8c8: store_ds_constructor_user_profile_photo (D, T); return; + default: assert (0); + } +} +void store_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x09d05049: store_ds_constructor_user_status_empty (D, T); return; + case 0xedb93949: store_ds_constructor_user_status_online (D, T); return; + case 0x008c703f: store_ds_constructor_user_status_offline (D, T); return; + case 0xe26f42f1: store_ds_constructor_user_status_recently (D, T); return; + case 0x07bf09fc: store_ds_constructor_user_status_last_week (D, T); return; + case 0x77ebc742: store_ds_constructor_user_status_last_month (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_user_status (struct tl_ds_user_status *D, struct paramed_type *T) { + switch (D->magic) { + case 0x09d05049: store_ds_constructor_user_status_empty (D, T); return; + case 0xedb93949: store_ds_constructor_user_status_online (D, T); return; + case 0x008c703f: store_ds_constructor_user_status_offline (D, T); return; + case 0xe26f42f1: store_ds_constructor_user_status_recently (D, T); return; + case 0x07bf09fc: store_ds_constructor_user_status_last_week (D, T); return; + case 0x77ebc742: store_ds_constructor_user_status_last_month (D, T); return; + default: assert (0); + } +} +void store_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T) { + out_int (0x1cb5c415); + store_ds_constructor_vector (D, T); return; +} +void store_ds_type_bare_vector (struct tl_ds_vector *D, struct paramed_type *T) { + store_ds_constructor_vector (D, T); return; +} +void store_ds_type_video (struct tl_ds_video *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xc10658a8: store_ds_constructor_video_empty (D, T); return; + case 0xee9f4a4d: store_ds_constructor_video (D, T); return; + case 0x388fa391: store_ds_constructor_video_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_video (struct tl_ds_video *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc10658a8: store_ds_constructor_video_empty (D, T); return; + case 0xee9f4a4d: store_ds_constructor_video (D, T); return; + case 0x388fa391: store_ds_constructor_video_l27 (D, T); return; + default: assert (0); + } +} +void store_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xccb03657: store_ds_constructor_wall_paper (D, T); return; + case 0x63117f24: store_ds_constructor_wall_paper_solid (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T) { + switch (D->magic) { + case 0xccb03657: store_ds_constructor_wall_paper (D, T); return; + case 0x63117f24: store_ds_constructor_wall_paper_solid (D, T); return; + default: assert (0); + } +} +void store_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xeb1477e8: store_ds_constructor_web_page_empty (D, T); return; + case 0xc586da1c: store_ds_constructor_web_page_pending (D, T); return; + case 0xa31ea0b5: store_ds_constructor_web_page (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_web_page (struct tl_ds_web_page *D, struct paramed_type *T) { + switch (D->magic) { + case 0xeb1477e8: store_ds_constructor_web_page_empty (D, T); return; + case 0xc586da1c: store_ds_constructor_web_page_pending (D, T); return; + case 0xa31ea0b5: store_ds_constructor_web_page (D, T); return; + default: assert (0); + } +} +void store_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) { + out_int (0x1250abde); + store_ds_constructor_account_authorizations (D, T); return; +} +void store_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T) { + store_ds_constructor_account_authorizations (D, T); return; +} +void store_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x96dabc18: store_ds_constructor_account_no_password (D, T); return; + case 0x7c18141c: store_ds_constructor_account_password (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_account_password (struct tl_ds_account_password *D, struct paramed_type *T) { + switch (D->magic) { + case 0x96dabc18: store_ds_constructor_account_no_password (D, T); return; + case 0x7c18141c: store_ds_constructor_account_password (D, T); return; + default: assert (0); + } +} +void store_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) { + out_int (0xbcfc532c); + store_ds_constructor_account_password_input_settings (D, T); return; +} +void store_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T) { + store_ds_constructor_account_password_input_settings (D, T); return; +} +void store_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) { + out_int (0xb7b72ab3); + store_ds_constructor_account_password_settings (D, T); return; +} +void store_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T) { + store_ds_constructor_account_password_settings (D, T); return; +} +void store_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) { + out_int (0x554abb6f); + store_ds_constructor_account_privacy_rules (D, T); return; +} +void store_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T) { + store_ds_constructor_account_privacy_rules (D, T); return; +} +void store_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) { + out_int (0xa4f58c4c); + store_ds_constructor_account_sent_change_phone_code (D, T); return; +} +void store_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T) { + store_ds_constructor_account_sent_change_phone_code (D, T); return; +} +void store_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) { + out_int (0xff036af1); + store_ds_constructor_auth_authorization (D, T); return; +} +void store_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T) { + store_ds_constructor_auth_authorization (D, T); return; +} +void store_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) { + out_int (0x811ea28e); + store_ds_constructor_auth_checked_phone (D, T); return; +} +void store_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T) { + store_ds_constructor_auth_checked_phone (D, T); return; +} +void store_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) { + out_int (0xdf969c2d); + store_ds_constructor_auth_exported_authorization (D, T); return; +} +void store_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T) { + store_ds_constructor_auth_exported_authorization (D, T); return; +} +void store_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) { + out_int (0x137948a5); + store_ds_constructor_auth_password_recovery (D, T); return; +} +void store_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T) { + store_ds_constructor_auth_password_recovery (D, T); return; +} +void store_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xefed51d9: store_ds_constructor_auth_sent_code (D, T); return; + case 0xe325edcf: store_ds_constructor_auth_sent_app_code (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T) { + switch (D->magic) { + case 0xefed51d9: store_ds_constructor_auth_sent_code (D, T); return; + case 0xe325edcf: store_ds_constructor_auth_sent_app_code (D, T); return; + default: assert (0); + } +} +void store_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) { + out_int (0x0377168f); + store_ds_constructor_binlog_encr_key (D, T); return; +} +void store_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T) { + store_ds_constructor_binlog_encr_key (D, T); return; +} +void store_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x3b06de69: store_ds_constructor_binlog_start (D, T); return; + case 0xf96feb32: store_ds_constructor_binlog_dc_option (D, T); return; + case 0x7c0d22d8: store_ds_constructor_binlog_dc_option_new (D, T); return; + case 0x71e8c156: store_ds_constructor_binlog_auth_key (D, T); return; + case 0x9e83dbdc: store_ds_constructor_binlog_default_dc (D, T); return; + case 0x26451bb5: store_ds_constructor_binlog_dc_signed (D, T); return; + case 0x68a870e8: store_ds_constructor_binlog_our_id (D, T); return; + case 0xeaeb7826: store_ds_constructor_binlog_set_dh_params (D, T); return; + case 0x2ca8c939: store_ds_constructor_binlog_set_pts (D, T); return; + case 0xd95738ac: store_ds_constructor_binlog_set_qts (D, T); return; + case 0x1d0f4b52: store_ds_constructor_binlog_set_date (D, T); return; + case 0x6eeb2989: store_ds_constructor_binlog_set_seq (D, T); return; + case 0xee1b38e8: store_ds_constructor_binlog_encr_chat_delete (D, T); return; + case 0x84977251: store_ds_constructor_binlog_encr_chat_new (D, T); return; + case 0x9d49488d: store_ds_constructor_binlog_encr_chat_exchange_new (D, T); return; + case 0xac55d447: store_ds_constructor_binlog_user_delete (D, T); return; + case 0x127cf2f9: store_ds_constructor_binlog_user_new (D, T); return; + case 0x0a10aa92: store_ds_constructor_binlog_chat_new (D, T); return; + case 0x535475ea: store_ds_constructor_binlog_chat_add_participant (D, T); return; + case 0x7dd1a1a2: store_ds_constructor_binlog_chat_del_participant (D, T); return; + case 0x3c873416: store_ds_constructor_binlog_set_msg_id (D, T); return; + case 0x847e77b1: store_ds_constructor_binlog_message_delete (D, T); return; + case 0x427cfcdb: store_ds_constructor_binlog_message_new (D, T); return; + case 0x6cf7cabc: store_ds_constructor_binlog_message_encr_new (D, T); return; + case 0x6dd4d85f: store_ds_constructor_binlog_msg_update (D, T); return; + case 0x83327955: store_ds_constructor_binlog_reset_authorization (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x3b06de69: store_ds_constructor_binlog_start (D, T); return; + case 0xf96feb32: store_ds_constructor_binlog_dc_option (D, T); return; + case 0x7c0d22d8: store_ds_constructor_binlog_dc_option_new (D, T); return; + case 0x71e8c156: store_ds_constructor_binlog_auth_key (D, T); return; + case 0x9e83dbdc: store_ds_constructor_binlog_default_dc (D, T); return; + case 0x26451bb5: store_ds_constructor_binlog_dc_signed (D, T); return; + case 0x68a870e8: store_ds_constructor_binlog_our_id (D, T); return; + case 0xeaeb7826: store_ds_constructor_binlog_set_dh_params (D, T); return; + case 0x2ca8c939: store_ds_constructor_binlog_set_pts (D, T); return; + case 0xd95738ac: store_ds_constructor_binlog_set_qts (D, T); return; + case 0x1d0f4b52: store_ds_constructor_binlog_set_date (D, T); return; + case 0x6eeb2989: store_ds_constructor_binlog_set_seq (D, T); return; + case 0xee1b38e8: store_ds_constructor_binlog_encr_chat_delete (D, T); return; + case 0x84977251: store_ds_constructor_binlog_encr_chat_new (D, T); return; + case 0x9d49488d: store_ds_constructor_binlog_encr_chat_exchange_new (D, T); return; + case 0xac55d447: store_ds_constructor_binlog_user_delete (D, T); return; + case 0x127cf2f9: store_ds_constructor_binlog_user_new (D, T); return; + case 0x0a10aa92: store_ds_constructor_binlog_chat_new (D, T); return; + case 0x535475ea: store_ds_constructor_binlog_chat_add_participant (D, T); return; + case 0x7dd1a1a2: store_ds_constructor_binlog_chat_del_participant (D, T); return; + case 0x3c873416: store_ds_constructor_binlog_set_msg_id (D, T); return; + case 0x847e77b1: store_ds_constructor_binlog_message_delete (D, T); return; + case 0x427cfcdb: store_ds_constructor_binlog_message_new (D, T); return; + case 0x6cf7cabc: store_ds_constructor_binlog_message_encr_new (D, T); return; + case 0x6dd4d85f: store_ds_constructor_binlog_msg_update (D, T); return; + case 0x83327955: store_ds_constructor_binlog_reset_authorization (D, T); return; + default: assert (0); + } +} +void store_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x1c138d15: store_ds_constructor_contacts_blocked (D, T); return; + case 0x900802a1: store_ds_constructor_contacts_blocked_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T) { + switch (D->magic) { + case 0x1c138d15: store_ds_constructor_contacts_blocked (D, T); return; + case 0x900802a1: store_ds_constructor_contacts_blocked_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xb74ba9d2: store_ds_constructor_contacts_contacts_not_modified (D, T); return; + case 0x6f8b8cb2: store_ds_constructor_contacts_contacts (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T) { + switch (D->magic) { + case 0xb74ba9d2: store_ds_constructor_contacts_contacts_not_modified (D, T); return; + case 0x6f8b8cb2: store_ds_constructor_contacts_contacts (D, T); return; + default: assert (0); + } +} +void store_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) { + out_int (0x0566000e); + store_ds_constructor_contacts_found (D, T); return; +} +void store_ds_type_bare_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T) { + store_ds_constructor_contacts_found (D, T); return; +} +void store_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) { + out_int (0xad524315); + store_ds_constructor_contacts_imported_contacts (D, T); return; +} +void store_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T) { + store_ds_constructor_contacts_imported_contacts (D, T); return; +} +void store_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) { + out_int (0x3ace484c); + store_ds_constructor_contacts_link (D, T); return; +} +void store_ds_type_bare_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T) { + store_ds_constructor_contacts_link (D, T); return; +} +void store_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) { + out_int (0x5649dcc5); + store_ds_constructor_contacts_suggested (D, T); return; +} +void store_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T) { + store_ds_constructor_contacts_suggested (D, T); return; +} +void store_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) { + out_int (0x48feb267); + store_ds_constructor_geochats_located (D, T); return; +} +void store_ds_type_bare_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T) { + store_ds_constructor_geochats_located (D, T); return; +} +void store_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xd1526db1: store_ds_constructor_geochats_messages (D, T); return; + case 0xbc5863e8: store_ds_constructor_geochats_messages_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T) { + switch (D->magic) { + case 0xd1526db1: store_ds_constructor_geochats_messages (D, T); return; + case 0xbc5863e8: store_ds_constructor_geochats_messages_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) { + out_int (0x17b1578b); + store_ds_constructor_geochats_stated_message (D, T); return; +} +void store_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T) { + store_ds_constructor_geochats_stated_message (D, T); return; +} +void store_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x8987f311: store_ds_constructor_help_app_update (D, T); return; + case 0xc45a6536: store_ds_constructor_help_no_app_update (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8987f311: store_ds_constructor_help_app_update (D, T); return; + case 0xc45a6536: store_ds_constructor_help_no_app_update (D, T); return; + default: assert (0); + } +} +void store_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) { + out_int (0x18cb9f78); + store_ds_constructor_help_invite_text (D, T); return; +} +void store_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T) { + store_ds_constructor_help_invite_text (D, T); return; +} +void store_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T) { + out_int (0x17c6b5f6); + store_ds_constructor_help_support (D, T); return; +} +void store_ds_type_bare_help_support (struct tl_ds_help_support *D, struct paramed_type *T) { + store_ds_constructor_help_support (D, T); return; +} +void store_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) { + out_int (0xb45c69d1); + store_ds_constructor_messages_affected_history (D, T); return; +} +void store_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T) { + store_ds_constructor_messages_affected_history (D, T); return; +} +void store_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) { + out_int (0x84d19185); + store_ds_constructor_messages_affected_messages (D, T); return; +} +void store_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T) { + store_ds_constructor_messages_affected_messages (D, T); return; +} +void store_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xe86602c3: store_ds_constructor_messages_all_stickers_not_modified (D, T); return; + case 0x5ce352ec: store_ds_constructor_messages_all_stickers (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T) { + switch (D->magic) { + case 0xe86602c3: store_ds_constructor_messages_all_stickers_not_modified (D, T); return; + case 0x5ce352ec: store_ds_constructor_messages_all_stickers (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) { + out_int (0xe5d7d19c); + store_ds_constructor_messages_chat_full (D, T); return; +} +void store_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T) { + store_ds_constructor_messages_chat_full (D, T); return; +} +void store_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) { + out_int (0x64ff9fd5); + store_ds_constructor_messages_chats (D, T); return; +} +void store_ds_type_bare_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T) { + store_ds_constructor_messages_chats (D, T); return; +} +void store_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xc0e24635: store_ds_constructor_messages_dh_config_not_modified (D, T); return; + case 0x2c221edd: store_ds_constructor_messages_dh_config (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T) { + switch (D->magic) { + case 0xc0e24635: store_ds_constructor_messages_dh_config_not_modified (D, T); return; + case 0x2c221edd: store_ds_constructor_messages_dh_config (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x15ba6c40: store_ds_constructor_messages_dialogs (D, T); return; + case 0x71e094f3: store_ds_constructor_messages_dialogs_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T) { + switch (D->magic) { + case 0x15ba6c40: store_ds_constructor_messages_dialogs (D, T); return; + case 0x71e094f3: store_ds_constructor_messages_dialogs_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) { + out_int (0x3f4e0648); + store_ds_constructor_messages_message_empty (D, T); return; +} +void store_ds_type_bare_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T) { + store_ds_constructor_messages_message_empty (D, T); return; +} +void store_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x8c718e87: store_ds_constructor_messages_messages (D, T); return; + case 0x0b446ae3: store_ds_constructor_messages_messages_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8c718e87: store_ds_constructor_messages_messages (D, T); return; + case 0x0b446ae3: store_ds_constructor_messages_messages_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x560f8935: store_ds_constructor_messages_sent_encrypted_message (D, T); return; + case 0x9493ff32: store_ds_constructor_messages_sent_encrypted_file (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x560f8935: store_ds_constructor_messages_sent_encrypted_message (D, T); return; + case 0x9493ff32: store_ds_constructor_messages_sent_encrypted_file (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x4c3d47f3: store_ds_constructor_messages_sent_message (D, T); return; + case 0x35a1a663: store_ds_constructor_messages_sent_message_link (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T) { + switch (D->magic) { + case 0x4c3d47f3: store_ds_constructor_messages_sent_message (D, T); return; + case 0x35a1a663: store_ds_constructor_messages_sent_message_link (D, T); return; + default: assert (0); + } +} +void store_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) { + out_int (0xb60a24a6); + store_ds_constructor_messages_sticker_set (D, T); return; +} +void store_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T) { + store_ds_constructor_messages_sticker_set (D, T); return; +} +void store_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xf1749a22: store_ds_constructor_messages_stickers_not_modified (D, T); return; + case 0x8a8ecd32: store_ds_constructor_messages_stickers (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T) { + switch (D->magic) { + case 0xf1749a22: store_ds_constructor_messages_stickers_not_modified (D, T); return; + case 0x8a8ecd32: store_ds_constructor_messages_stickers (D, T); return; + default: assert (0); + } +} +void store_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) { + out_int (0x20212ca8); + store_ds_constructor_photos_photo (D, T); return; +} +void store_ds_type_bare_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T) { + store_ds_constructor_photos_photo (D, T); return; +} +void store_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x8dca6aa5: store_ds_constructor_photos_photos (D, T); return; + case 0x15051f54: store_ds_constructor_photos_photos_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T) { + switch (D->magic) { + case 0x8dca6aa5: store_ds_constructor_photos_photos (D, T); return; + case 0x15051f54: store_ds_constructor_photos_photos_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0xaa963b05: store_ds_constructor_storage_file_unknown (D, T); return; + case 0x007efe0e: store_ds_constructor_storage_file_jpeg (D, T); return; + case 0xcae1aadf: store_ds_constructor_storage_file_gif (D, T); return; + case 0x0a4f63c0: store_ds_constructor_storage_file_png (D, T); return; + case 0xae1e508d: store_ds_constructor_storage_file_pdf (D, T); return; + case 0x528a0677: store_ds_constructor_storage_file_mp3 (D, T); return; + case 0x4b09ebbc: store_ds_constructor_storage_file_mov (D, T); return; + case 0x40bc6f52: store_ds_constructor_storage_file_partial (D, T); return; + case 0xb3cea0e4: store_ds_constructor_storage_file_mp4 (D, T); return; + case 0x1081464c: store_ds_constructor_storage_file_webp (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T) { + switch (D->magic) { + case 0xaa963b05: store_ds_constructor_storage_file_unknown (D, T); return; + case 0x007efe0e: store_ds_constructor_storage_file_jpeg (D, T); return; + case 0xcae1aadf: store_ds_constructor_storage_file_gif (D, T); return; + case 0x0a4f63c0: store_ds_constructor_storage_file_png (D, T); return; + case 0xae1e508d: store_ds_constructor_storage_file_pdf (D, T); return; + case 0x528a0677: store_ds_constructor_storage_file_mp3 (D, T); return; + case 0x4b09ebbc: store_ds_constructor_storage_file_mov (D, T); return; + case 0x40bc6f52: store_ds_constructor_storage_file_partial (D, T); return; + case 0xb3cea0e4: store_ds_constructor_storage_file_mp4 (D, T); return; + case 0x1081464c: store_ds_constructor_storage_file_webp (D, T); return; + default: assert (0); + } +} +void store_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) { + out_int (D->magic); + switch (D->magic) { + case 0x5d75a138: store_ds_constructor_updates_difference_empty (D, T); return; + case 0x00f49ca0: store_ds_constructor_updates_difference (D, T); return; + case 0xa8fb1981: store_ds_constructor_updates_difference_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_bare_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T) { + switch (D->magic) { + case 0x5d75a138: store_ds_constructor_updates_difference_empty (D, T); return; + case 0x00f49ca0: store_ds_constructor_updates_difference (D, T); return; + case 0xa8fb1981: store_ds_constructor_updates_difference_slice (D, T); return; + default: assert (0); + } +} +void store_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) { + out_int (0xa56c2a3e); + store_ds_constructor_updates_state (D, T); return; +} +void store_ds_type_bare_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T) { + store_ds_constructor_updates_state (D, T); return; +} +void store_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) { + out_int (0x096a18d5); + store_ds_constructor_upload_file (D, T); return; +} +void store_ds_type_bare_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T) { + store_ds_constructor_upload_file (D, T); return; +} +void store_ds_type_any (void *D, struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: store_ds_type_account_days_t_t_l (D, T); return; + case 0x472f5020: store_ds_type_bare_account_days_t_t_l (D, T); return; + case 0x9fc5ec4e: store_ds_type_audio (D, T); return; + case 0x603a13b1: store_ds_type_bare_audio (D, T); return; + case 0x7bf2e6f6: store_ds_type_authorization (D, T); return; + case 0x840d1909: store_ds_type_bare_authorization (D, T); return; + case 0x250be282: store_ds_type_bool (D, T); return; + case 0xdaf41d7d: store_ds_type_bare_bool (D, T); return; + case 0x75e7ea6c: store_ds_type_bot_command (D, T); return; + case 0x8a181593: store_ds_type_bare_bot_command (D, T); return; + case 0xb2e16f93: store_ds_type_bot_info (D, T); return; + case 0x4d1e906c: store_ds_type_bare_bot_info (D, T); return; + case 0x0ee1379f: store_ds_type_bytes (D, T); return; + case 0xf11ec860: store_ds_type_bare_bytes (D, T); return; + case 0x7bd865dc: store_ds_type_chat (D, T); return; + case 0x84279a23: store_ds_type_bare_chat (D, T); return; + case 0x2e02a614: store_ds_type_chat_full (D, T); return; + case 0xd1fd59eb: store_ds_type_bare_chat_full (D, T); return; + case 0x94f910b1: store_ds_type_chat_invite (D, T); return; + case 0x6b06ef4e: store_ds_type_bare_chat_invite (D, T); return; + case 0x3631cf4c: store_ds_type_chat_located (D, T); return; + case 0xc9ce30b3: store_ds_type_bare_chat_located (D, T); return; + case 0xc8d7493e: store_ds_type_chat_participant (D, T); return; + case 0x3728b6c1: store_ds_type_bare_chat_participant (D, T); return; + case 0x77930f9f: store_ds_type_chat_participants (D, T); return; + case 0x886cf060: store_ds_type_bare_chat_participants (D, T); return; + case 0x56922676: store_ds_type_chat_photo (D, T); return; + case 0xa96dd989: store_ds_type_bare_chat_photo (D, T); return; + case 0x6643b654: store_ds_type_client_d_h_inner_data (D, T); return; + case 0x99bc49ab: store_ds_type_bare_client_d_h_inner_data (D, T); return; + case 0x4e32b894: store_ds_type_config (D, T); return; + case 0xb1cd476b: store_ds_type_bare_config (D, T); return; + case 0xf911c994: store_ds_type_contact (D, T); return; + case 0x06ee366b: store_ds_type_bare_contact (D, T); return; + case 0x561bc879: store_ds_type_contact_blocked (D, T); return; + case 0xa9e43786: store_ds_type_bare_contact_blocked (D, T); return; + case 0xea879f95: store_ds_type_contact_found (D, T); return; + case 0x1578606a: store_ds_type_bare_contact_found (D, T); return; + case 0x522fbc63: store_ds_type_contact_link (D, T); return; + case 0xadd0439c: store_ds_type_bare_contact_link (D, T); return; + case 0xd3680c61: store_ds_type_contact_status (D, T); return; + case 0x2c97f39e: store_ds_type_bare_contact_status (D, T); return; + case 0x3de191a1: store_ds_type_contact_suggested (D, T); return; + case 0xc21e6e5e: store_ds_type_bare_contact_suggested (D, T); return; + case 0x2b1a62f0: store_ds_type_dc_option (D, T); return; + case 0xd4e59d0f: store_ds_type_bare_dc_option (D, T); return; + case 0x535b7918: store_ds_type_decrypted_message (D, T); return; + case 0xaca486e7: store_ds_type_bare_decrypted_message (D, T); return; + case 0x4e0eefde: store_ds_type_decrypted_message_action (D, T); return; + case 0xb1f11021: store_ds_type_bare_decrypted_message_action (D, T); return; + case 0x1be31789: store_ds_type_decrypted_message_layer (D, T); return; + case 0xe41ce876: store_ds_type_bare_decrypted_message_layer (D, T); return; + case 0x34e0d674: store_ds_type_decrypted_message_media (D, T); return; + case 0xcb1f298b: store_ds_type_bare_decrypted_message_media (D, T); return; + case 0xc1dd804a: store_ds_type_dialog (D, T); return; + case 0x3e227fb5: store_ds_type_bare_dialog (D, T); return; + case 0xae636f24: store_ds_type_disabled_feature (D, T); return; + case 0x519c90db: store_ds_type_bare_disabled_feature (D, T); return; + case 0x51a73418: store_ds_type_document (D, T); return; + case 0xae58cbe7: store_ds_type_bare_document (D, T); return; + case 0x97c637a3: store_ds_type_document_attribute (D, T); return; + case 0x6839c85c: store_ds_type_bare_document_attribute (D, T); return; + case 0x2210c154: store_ds_type_double (D, T); return; + case 0xddef3eab: store_ds_type_bare_double (D, T); return; + case 0xb1718213: store_ds_type_encrypted_chat (D, T); return; + case 0x4e8e7dec: store_ds_type_bare_encrypted_chat (D, T); return; + case 0x886fd032: store_ds_type_encrypted_file (D, T); return; + case 0x77902fcd: store_ds_type_bare_encrypted_file (D, T); return; + case 0xce6b8a1e: store_ds_type_encrypted_message (D, T); return; + case 0x319475e1: store_ds_type_bare_encrypted_message (D, T); return; + case 0xc4b9f9bb: store_ds_type_error (D, T); return; + case 0x3b460644: store_ds_type_bare_error (D, T); return; + case 0x95f132d5: store_ds_type_exported_chat_invite (D, T); return; + case 0x6a0ecd2a: store_ds_type_bare_exported_chat_invite (D, T); return; + case 0x2f8ffb30: store_ds_type_file_location (D, T); return; + case 0xd07004cf: store_ds_type_bare_file_location (D, T); return; + case 0xf67b4034: store_ds_type_geo_chat_message (D, T); return; + case 0x0984bfcb: store_ds_type_bare_geo_chat_message (D, T); return; + case 0x315e0a53: store_ds_type_geo_point (D, T); return; + case 0xcea1f5ac: store_ds_type_bare_geo_point (D, T); return; + case 0xd0028438: store_ds_type_imported_contact (D, T); return; + case 0x2ffd7bc7: store_ds_type_bare_imported_contact (D, T); return; + case 0x770656a8: store_ds_type_input_app_event (D, T); return; + case 0x88f9a957: store_ds_type_bare_input_app_event (D, T); return; + case 0xae8e9c7b: store_ds_type_input_audio (D, T); return; + case 0x51716384: store_ds_type_bare_input_audio (D, T); return; + case 0x3a60776d: store_ds_type_input_chat_photo (D, T); return; + case 0xc59f8892: store_ds_type_bare_input_chat_photo (D, T); return; + case 0xf392b7f4: store_ds_type_input_contact (D, T); return; + case 0x0c6d480b: store_ds_type_bare_input_contact (D, T); return; + case 0x6a8963fc: store_ds_type_input_document (D, T); return; + case 0x95769c03: store_ds_type_bare_input_document (D, T); return; + case 0xf141b5e1: store_ds_type_input_encrypted_chat (D, T); return; + case 0x0ebe4a1e: store_ds_type_bare_input_encrypted_chat (D, T); return; + case 0x0b5c064f: store_ds_type_input_encrypted_file (D, T); return; + case 0xf4a3f9b0: store_ds_type_bare_input_encrypted_file (D, T); return; + case 0x0f60f9ca: store_ds_type_input_file (D, T); return; + case 0xf09f0635: store_ds_type_bare_input_file (D, T); return; + case 0xe6daa38b: store_ds_type_input_file_location (D, T); return; + case 0x19255c74: store_ds_type_bare_input_file_location (D, T); return; + case 0x74d456fa: store_ds_type_input_geo_chat (D, T); return; + case 0x8b2ba905: store_ds_type_bare_input_geo_chat (D, T); return; + case 0x17768f1f: store_ds_type_input_geo_point (D, T); return; + case 0xe88970e0: store_ds_type_bare_input_geo_point (D, T); return; + case 0xb32c91dd: store_ds_type_input_media (D, T); return; + case 0x4cd36e22: store_ds_type_bare_input_media (D, T); return; + case 0x02b6911b: store_ds_type_input_notify_peer (D, T); return; + case 0xfd496ee4: store_ds_type_bare_input_notify_peer (D, T); return; + case 0x9e67268d: store_ds_type_input_peer (D, T); return; + case 0x6198d972: store_ds_type_bare_input_peer (D, T); return; + case 0x185a48ac: store_ds_type_input_peer_notify_events (D, T); return; + case 0xe7a5b753: store_ds_type_bare_input_peer_notify_events (D, T); return; + case 0x46a2ce98: store_ds_type_input_peer_notify_settings (D, T); return; + case 0xb95d3167: store_ds_type_bare_input_peer_notify_settings (D, T); return; + case 0xe74279c9: store_ds_type_input_photo (D, T); return; + case 0x18bd8636: store_ds_type_bare_input_photo (D, T); return; + case 0x7477e321: store_ds_type_input_photo_crop (D, T); return; + case 0x8b881cde: store_ds_type_bare_input_photo_crop (D, T); return; + case 0x4f96cb18: store_ds_type_input_privacy_key (D, T); return; + case 0xb06934e7: store_ds_type_bare_input_privacy_key (D, T); return; + case 0x4b815163: store_ds_type_input_privacy_rule (D, T); return; + case 0xb47eae9c: store_ds_type_bare_input_privacy_rule (D, T); return; + case 0xe44d415c: store_ds_type_input_sticker_set (D, T); return; + case 0x1bb2bea3: store_ds_type_bare_input_sticker_set (D, T); return; + case 0xadfe0c6a: store_ds_type_input_user (D, T); return; + case 0x5201f395: store_ds_type_bare_input_user (D, T); return; + case 0xbb5f7a27: store_ds_type_input_video (D, T); return; + case 0x44a085d8: store_ds_type_bare_input_video (D, T); return; + case 0xa8509bda: store_ds_type_int (D, T); return; + case 0x57af6425: store_ds_type_bare_int (D, T); return; + case 0x7d36c439: store_ds_type_int128 (D, T); return; + case 0x82c93bc6: store_ds_type_bare_int128 (D, T); return; + case 0xf2c798b3: store_ds_type_int256 (D, T); return; + case 0x0d38674c: store_ds_type_bare_int256 (D, T); return; + case 0xa2fa4880: store_ds_type_keyboard_button (D, T); return; + case 0x5d05b77f: store_ds_type_bare_keyboard_button (D, T); return; + case 0x77608b83: store_ds_type_keyboard_button_row (D, T); return; + case 0x889f747c: store_ds_type_bare_keyboard_button_row (D, T); return; + case 0x22076cba: store_ds_type_long (D, T); return; + case 0xddf89345: store_ds_type_bare_long (D, T); return; + case 0x5d652a7f: store_ds_type_message (D, T); return; + case 0xa29ad580: store_ds_type_bare_message (D, T); return; + case 0x383415fa: store_ds_type_message_action (D, T); return; + case 0xc7cbea05: store_ds_type_bare_message_action (D, T); return; + case 0x95f2471a: store_ds_type_message_media (D, T); return; + case 0x6a0db8e5: store_ds_type_bare_message_media (D, T); return; + case 0x80895ae0: store_ds_type_messages_filter (D, T); return; + case 0x7f76a51f: store_ds_type_bare_messages_filter (D, T); return; + case 0x8e1a1775: store_ds_type_nearest_dc (D, T); return; + case 0x71e5e88a: store_ds_type_bare_nearest_dc (D, T); return; + case 0x9fcb8237: store_ds_type_notify_peer (D, T); return; + case 0x60347dc8: store_ds_type_bare_notify_peer (D, T); return; + case 0x56730bcc: store_ds_type_null (D, T); return; + case 0xa98cf433: store_ds_type_bare_null (D, T); return; + case 0xbfa3de38: store_ds_type_p_q_inner_data (D, T); return; + case 0x405c21c7: store_ds_type_bare_p_q_inner_data (D, T); return; + case 0x276159d6: store_ds_type_peer (D, T); return; + case 0xd89ea629: store_ds_type_bare_peer (D, T); return; + case 0xc0c8d13b: store_ds_type_peer_notify_events (D, T); return; + case 0x3f372ec4: store_ds_type_bare_peer_notify_events (D, T); return; + case 0xfdf894fc: store_ds_type_peer_notify_settings (D, T); return; + case 0x02076b03: store_ds_type_bare_peer_notify_settings (D, T); return; + case 0xc207550a: store_ds_type_photo (D, T); return; + case 0x3df8aaf5: store_ds_type_bare_photo (D, T); return; + case 0x900f60dd: store_ds_type_photo_size (D, T); return; + case 0x6ff09f22: store_ds_type_bare_photo_size (D, T); return; + case 0xbc2eab30: store_ds_type_privacy_key (D, T); return; + case 0x43d154cf: store_ds_type_bare_privacy_key (D, T); return; + case 0xa8638aec: store_ds_type_privacy_rule (D, T); return; + case 0x579c7513: store_ds_type_bare_privacy_rule (D, T); return; + case 0xa384b779: store_ds_type_received_notify_message (D, T); return; + case 0x5c7b4886: store_ds_type_bare_received_notify_message (D, T); return; + case 0x612ca4a9: store_ds_type_reply_markup (D, T); return; + case 0x9ed35b56: store_ds_type_bare_reply_markup (D, T); return; + case 0x05162463: store_ds_type_res_p_q (D, T); return; + case 0xfae9db9c: store_ds_type_bare_res_p_q (D, T); return; + case 0x70541c7e: store_ds_type_send_message_action (D, T); return; + case 0x8fabe381: store_ds_type_bare_send_message_action (D, T); return; + case 0xa9230301: store_ds_type_server_d_h_params (D, T); return; + case 0x56dcfcfe: store_ds_type_bare_server_d_h_params (D, T); return; + case 0xb5890dba: store_ds_type_server_d_h_inner_data (D, T); return; + case 0x4a76f245: store_ds_type_bare_server_d_h_inner_data (D, T); return; + case 0xdb8a468f: store_ds_type_set_client_d_h_params_answer (D, T); return; + case 0x2475b970: store_ds_type_bare_set_client_d_h_params_answer (D, T); return; + case 0x12b299d4: store_ds_type_sticker_pack (D, T); return; + case 0xed4d662b: store_ds_type_bare_sticker_pack (D, T); return; + case 0xa7a43b17: store_ds_type_sticker_set (D, T); return; + case 0x585bc4e8: store_ds_type_bare_sticker_set (D, T); return; + case 0xb5286e24: store_ds_type_string (D, T); return; + case 0x4ad791db: store_ds_type_bare_string (D, T); return; + case 0x2e02b27e: store_ds_type_update (D, T); return; + case 0xd1fd4d81: store_ds_type_bare_update (D, T); return; + case 0x22499d27: store_ds_type_updates (D, T); return; + case 0xddb662d8: store_ds_type_bare_updates (D, T); return; + case 0x02e6c0c8: store_ds_type_user (D, T); return; + case 0xfd193f37: store_ds_type_bare_user (D, T); return; + case 0x5a89ac5b: store_ds_type_user_full (D, T); return; + case 0xa57653a4: store_ds_type_bare_user_full (D, T); return; + case 0x9a486229: store_ds_type_user_profile_photo (D, T); return; + case 0x65b79dd6: store_ds_type_bare_user_profile_photo (D, T); return; + case 0x76de9570: store_ds_type_user_status (D, T); return; + case 0x89216a8f: store_ds_type_bare_user_status (D, T); return; + case 0x1cb5c415: store_ds_type_vector (D, T); return; + case 0xe34a3bea: store_ds_type_bare_vector (D, T); return; + case 0x1716b174: store_ds_type_video (D, T); return; + case 0xe8e94e8b: store_ds_type_bare_video (D, T); return; + case 0xafa14973: store_ds_type_wall_paper (D, T); return; + case 0x505eb68c: store_ds_type_bare_wall_paper (D, T); return; + case 0x8d8c0d41: store_ds_type_web_page (D, T); return; + case 0x7273f2be: store_ds_type_bare_web_page (D, T); return; + case 0x1250abde: store_ds_type_account_authorizations (D, T); return; + case 0xedaf5421: store_ds_type_bare_account_authorizations (D, T); return; + case 0xeac2a804: store_ds_type_account_password (D, T); return; + case 0x153d57fb: store_ds_type_bare_account_password (D, T); return; + case 0xbcfc532c: store_ds_type_account_password_input_settings (D, T); return; + case 0x4303acd3: store_ds_type_bare_account_password_input_settings (D, T); return; + case 0xb7b72ab3: store_ds_type_account_password_settings (D, T); return; + case 0x4848d54c: store_ds_type_bare_account_password_settings (D, T); return; + case 0x554abb6f: store_ds_type_account_privacy_rules (D, T); return; + case 0xaab54490: store_ds_type_bare_account_privacy_rules (D, T); return; + case 0xa4f58c4c: store_ds_type_account_sent_change_phone_code (D, T); return; + case 0x5b0a73b3: store_ds_type_bare_account_sent_change_phone_code (D, T); return; + case 0xff036af1: store_ds_type_auth_authorization (D, T); return; + case 0x00fc950e: store_ds_type_bare_auth_authorization (D, T); return; + case 0x811ea28e: store_ds_type_auth_checked_phone (D, T); return; + case 0x7ee15d71: store_ds_type_bare_auth_checked_phone (D, T); return; + case 0xdf969c2d: store_ds_type_auth_exported_authorization (D, T); return; + case 0x206963d2: store_ds_type_bare_auth_exported_authorization (D, T); return; + case 0x137948a5: store_ds_type_auth_password_recovery (D, T); return; + case 0xec86b75a: store_ds_type_bare_auth_password_recovery (D, T); return; + case 0x0cc8bc16: store_ds_type_auth_sent_code (D, T); return; + case 0xf33743e9: store_ds_type_bare_auth_sent_code (D, T); return; + case 0x0377168f: store_ds_type_binlog_encr_key (D, T); return; + case 0xfc88e970: store_ds_type_bare_binlog_encr_key (D, T); return; + case 0x66ff03a6: store_ds_type_binlog_update (D, T); return; + case 0x9900fc59: store_ds_type_bare_binlog_update (D, T); return; + case 0x8c1b8fb4: store_ds_type_contacts_blocked (D, T); return; + case 0x73e4704b: store_ds_type_bare_contacts_blocked (D, T); return; + case 0xd8c02560: store_ds_type_contacts_contacts (D, T); return; + case 0x273fda9f: store_ds_type_bare_contacts_contacts (D, T); return; + case 0x0566000e: store_ds_type_contacts_found (D, T); return; + case 0xfa99fff1: store_ds_type_bare_contacts_found (D, T); return; + case 0xad524315: store_ds_type_contacts_imported_contacts (D, T); return; + case 0x52adbcea: store_ds_type_bare_contacts_imported_contacts (D, T); return; + case 0x3ace484c: store_ds_type_contacts_link (D, T); return; + case 0xc531b7b3: store_ds_type_bare_contacts_link (D, T); return; + case 0x5649dcc5: store_ds_type_contacts_suggested (D, T); return; + case 0xa9b6233a: store_ds_type_bare_contacts_suggested (D, T); return; + case 0x48feb267: store_ds_type_geochats_located (D, T); return; + case 0xb7014d98: store_ds_type_bare_geochats_located (D, T); return; + case 0x6d0a0e59: store_ds_type_geochats_messages (D, T); return; + case 0x92f5f1a6: store_ds_type_bare_geochats_messages (D, T); return; + case 0x17b1578b: store_ds_type_geochats_stated_message (D, T); return; + case 0xe84ea874: store_ds_type_bare_geochats_stated_message (D, T); return; + case 0x4ddd9627: store_ds_type_help_app_update (D, T); return; + case 0xb22269d8: store_ds_type_bare_help_app_update (D, T); return; + case 0x18cb9f78: store_ds_type_help_invite_text (D, T); return; + case 0xe7346087: store_ds_type_bare_help_invite_text (D, T); return; + case 0x17c6b5f6: store_ds_type_help_support (D, T); return; + case 0xe8394a09: store_ds_type_bare_help_support (D, T); return; + case 0xb45c69d1: store_ds_type_messages_affected_history (D, T); return; + case 0x4ba3962e: store_ds_type_bare_messages_affected_history (D, T); return; + case 0x84d19185: store_ds_type_messages_affected_messages (D, T); return; + case 0x7b2e6e7a: store_ds_type_bare_messages_affected_messages (D, T); return; + case 0xb485502f: store_ds_type_messages_all_stickers (D, T); return; + case 0x4b7aafd0: store_ds_type_bare_messages_all_stickers (D, T); return; + case 0xe5d7d19c: store_ds_type_messages_chat_full (D, T); return; + case 0x1a282e63: store_ds_type_bare_messages_chat_full (D, T); return; + case 0x64ff9fd5: store_ds_type_messages_chats (D, T); return; + case 0x9b00602a: store_ds_type_bare_messages_chats (D, T); return; + case 0xecc058e8: store_ds_type_messages_dh_config (D, T); return; + case 0x133fa717: store_ds_type_bare_messages_dh_config (D, T); return; + case 0x645af8b3: store_ds_type_messages_dialogs (D, T); return; + case 0x9ba5074c: store_ds_type_bare_messages_dialogs (D, T); return; + case 0x3f4e0648: store_ds_type_messages_message (D, T); return; + case 0xc0b1f9b7: store_ds_type_bare_messages_message (D, T); return; + case 0x8735e464: store_ds_type_messages_messages (D, T); return; + case 0x78ca1b9b: store_ds_type_bare_messages_messages (D, T); return; + case 0xc29c7607: store_ds_type_messages_sent_encrypted_message (D, T); return; + case 0x3d6389f8: store_ds_type_bare_messages_sent_encrypted_message (D, T); return; + case 0x799ce190: store_ds_type_messages_sent_message (D, T); return; + case 0x86631e6f: store_ds_type_bare_messages_sent_message (D, T); return; + case 0xb60a24a6: store_ds_type_messages_sticker_set (D, T); return; + case 0x49f5db59: store_ds_type_bare_messages_sticker_set (D, T); return; + case 0x7bfa5710: store_ds_type_messages_stickers (D, T); return; + case 0x8405a8ef: store_ds_type_bare_messages_stickers (D, T); return; + case 0x20212ca8: store_ds_type_photos_photo (D, T); return; + case 0xdfded357: store_ds_type_bare_photos_photo (D, T); return; + case 0x98cf75f1: store_ds_type_photos_photos (D, T); return; + case 0x67308a0e: store_ds_type_bare_photos_photos (D, T); return; + case 0x3e2838a8: store_ds_type_storage_file_type (D, T); return; + case 0xc1d7c757: store_ds_type_bare_storage_file_type (D, T); return; + case 0xf57a2419: store_ds_type_updates_difference (D, T); return; + case 0x0a85dbe6: store_ds_type_bare_updates_difference (D, T); return; + case 0xa56c2a3e: store_ds_type_updates_state (D, T); return; + case 0x5a93d5c1: store_ds_type_bare_updates_state (D, T); return; + case 0x096a18d5: store_ds_type_upload_file (D, T); return; + case 0xf695e72a: store_ds_type_bare_upload_file (D, T); return; + default: return; } +} diff --git a/libs/tgl/src/auto/auto-store-ds.h b/libs/tgl/src/auto/auto-store-ds.h new file mode 100644 index 0000000000..4abc26b3ce --- /dev/null +++ b/libs/tgl/src/auto/auto-store-ds.h @@ -0,0 +1,718 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "auto-types.h" +#else +#include "auto.h" +#include "auto/auto-types.h" +#endif +#include +#include +struct tgl_state; +void store_ds_constructor_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T); +void store_ds_constructor_audio_empty (struct tl_ds_audio *D, struct paramed_type *T); +void store_ds_constructor_audio (struct tl_ds_audio *D, struct paramed_type *T); +void store_ds_constructor_authorization (struct tl_ds_authorization *D, struct paramed_type *T); +void store_ds_constructor_bool_false (struct tl_ds_bool *D, struct paramed_type *T); +void store_ds_constructor_bool_true (struct tl_ds_bool *D, struct paramed_type *T); +void store_ds_constructor_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T); +void store_ds_constructor_bot_command_old (struct tl_ds_bot_command *D, struct paramed_type *T); +void store_ds_constructor_bot_info_empty (struct tl_ds_bot_info *D, struct paramed_type *T); +void store_ds_constructor_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T); +void store_ds_constructor_bytes (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_constructor_chat_empty (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_constructor_chat (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_constructor_chat_forbidden (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_constructor_geo_chat (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_constructor_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T); +void store_ds_constructor_chat_invite_already (struct tl_ds_chat_invite *D, struct paramed_type *T); +void store_ds_constructor_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T); +void store_ds_constructor_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T); +void store_ds_constructor_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T); +void store_ds_constructor_chat_participants_forbidden (struct tl_ds_chat_participants *D, struct paramed_type *T); +void store_ds_constructor_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T); +void store_ds_constructor_chat_photo_empty (struct tl_ds_chat_photo *D, struct paramed_type *T); +void store_ds_constructor_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T); +void store_ds_constructor_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T); +void store_ds_constructor_config (struct tl_ds_config *D, struct paramed_type *T); +void store_ds_constructor_contact (struct tl_ds_contact *D, struct paramed_type *T); +void store_ds_constructor_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T); +void store_ds_constructor_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T); +void store_ds_constructor_contact_link_unknown (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_constructor_contact_link_none (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_constructor_contact_link_has_phone (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_constructor_contact_link_contact (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_constructor_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T); +void store_ds_constructor_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T); +void store_ds_constructor_dc_option_l28 (struct tl_ds_dc_option *D, struct paramed_type *T); +void store_ds_constructor_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_service (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_set_message_t_t_l (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_read_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_delete_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_screenshot_messages (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_flush_history (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_resend (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_notify_layer (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_typing (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_request_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_accept_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_abort_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_commit_key (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_action_noop (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_empty (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_photo (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_geo_point (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_contact (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_video (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_audio (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_external_document (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_video_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_decrypted_message_media_audio_l12 (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_constructor_dialog (struct tl_ds_dialog *D, struct paramed_type *T); +void store_ds_constructor_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T); +void store_ds_constructor_document_empty (struct tl_ds_document *D, struct paramed_type *T); +void store_ds_constructor_document (struct tl_ds_document *D, struct paramed_type *T); +void store_ds_constructor_document_l19 (struct tl_ds_document *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_image_size (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_animated (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_sticker_l28 (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_sticker (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_video (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_audio (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_document_attribute_filename (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_constructor_double (double *D, struct paramed_type *T); +void store_ds_constructor_encrypted_chat_empty (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_encrypted_chat_waiting (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_encrypted_chat_requested (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_encrypted_chat_discarded (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_encrypted_file_empty (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void store_ds_constructor_encrypted_message_service (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void store_ds_constructor_error (struct tl_ds_error *D, struct paramed_type *T); +void store_ds_constructor_chat_invite_empty (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void store_ds_constructor_chat_invite_exported (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void store_ds_constructor_file_location_unavailable (struct tl_ds_file_location *D, struct paramed_type *T); +void store_ds_constructor_file_location (struct tl_ds_file_location *D, struct paramed_type *T); +void store_ds_constructor_geo_chat_message_empty (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void store_ds_constructor_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void store_ds_constructor_geo_chat_message_service (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void store_ds_constructor_geo_point_empty (struct tl_ds_geo_point *D, struct paramed_type *T); +void store_ds_constructor_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T); +void store_ds_constructor_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T); +void store_ds_constructor_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T); +void store_ds_constructor_input_audio_empty (struct tl_ds_input_audio *D, struct paramed_type *T); +void store_ds_constructor_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T); +void store_ds_constructor_input_chat_photo_empty (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void store_ds_constructor_input_chat_uploaded_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void store_ds_constructor_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void store_ds_constructor_input_phone_contact (struct tl_ds_input_contact *D, struct paramed_type *T); +void store_ds_constructor_input_document_empty (struct tl_ds_input_document *D, struct paramed_type *T); +void store_ds_constructor_input_document (struct tl_ds_input_document *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_file_empty (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_file_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_file_big_uploaded (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_constructor_input_file (struct tl_ds_input_file *D, struct paramed_type *T); +void store_ds_constructor_input_file_big (struct tl_ds_input_file *D, struct paramed_type *T); +void store_ds_constructor_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_constructor_input_video_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_constructor_input_encrypted_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_constructor_input_audio_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_constructor_input_document_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_constructor_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T); +void store_ds_constructor_input_geo_point_empty (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void store_ds_constructor_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void store_ds_constructor_input_media_empty (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_photo (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_photo (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_geo_point (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_contact (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_video (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_thumb_video (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_video (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_audio (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_audio (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_document (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_uploaded_thumb_document (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_document (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_media_venue (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_constructor_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_input_notify_users (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_input_notify_chats (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_input_notify_all (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_input_notify_geo_chat_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_empty (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_self (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_contact (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_foreign (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_chat (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_constructor_input_peer_notify_events_empty (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void store_ds_constructor_input_peer_notify_events_all (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void store_ds_constructor_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T); +void store_ds_constructor_input_photo_empty (struct tl_ds_input_photo *D, struct paramed_type *T); +void store_ds_constructor_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T); +void store_ds_constructor_input_photo_crop_auto (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void store_ds_constructor_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_key_status_timestamp (struct tl_ds_input_privacy_key *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_allow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_allow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_allow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_disallow_contacts (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_disallow_all (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_privacy_value_disallow_users (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_input_sticker_set_empty (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void store_ds_constructor_input_sticker_set_i_d (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void store_ds_constructor_input_sticker_set_short_name (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void store_ds_constructor_input_user_empty (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_constructor_input_user_self (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_constructor_input_user_contact (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_constructor_input_user_foreign (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_constructor_input_video_empty (struct tl_ds_input_video *D, struct paramed_type *T); +void store_ds_constructor_input_video (struct tl_ds_input_video *D, struct paramed_type *T); +void store_ds_constructor_int (int *D, struct paramed_type *T); +void store_ds_constructor_int128 (struct tl_ds_int128 *D, struct paramed_type *T); +void store_ds_constructor_int256 (struct tl_ds_int256 *D, struct paramed_type *T); +void store_ds_constructor_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T); +void store_ds_constructor_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T); +void store_ds_constructor_long (long long *D, struct paramed_type *T); +void store_ds_constructor_message_empty (struct tl_ds_message *D, struct paramed_type *T); +void store_ds_constructor_message (struct tl_ds_message *D, struct paramed_type *T); +void store_ds_constructor_message_service (struct tl_ds_message *D, struct paramed_type *T); +void store_ds_constructor_message_action_empty (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_create (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_edit_title (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_edit_photo (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_delete_photo (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_add_user (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_delete_user (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_geo_chat_create (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_geo_chat_checkin (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_action_chat_joined_by_link (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_constructor_message_media_empty (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_photo (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_video (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_geo (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_contact (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_unsupported (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_document (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_audio (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_web_page (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_venue (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_photo_l27 (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_message_media_video_l27 (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_empty (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_photos (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_video (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_photo_video (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_photo_video_documents (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_document (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_input_messages_filter_audio (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_constructor_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T); +void store_ds_constructor_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_notify_users (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_notify_chats (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_notify_all (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_constructor_null (struct tl_ds_null *D, struct paramed_type *T); +void store_ds_constructor_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void store_ds_constructor_p_q_inner_data_temp (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void store_ds_constructor_peer_user (struct tl_ds_peer *D, struct paramed_type *T); +void store_ds_constructor_peer_chat (struct tl_ds_peer *D, struct paramed_type *T); +void store_ds_constructor_peer_notify_events_empty (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void store_ds_constructor_peer_notify_events_all (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void store_ds_constructor_peer_notify_settings_empty (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void store_ds_constructor_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void store_ds_constructor_photo_empty (struct tl_ds_photo *D, struct paramed_type *T); +void store_ds_constructor_photo (struct tl_ds_photo *D, struct paramed_type *T); +void store_ds_constructor_photo_l27 (struct tl_ds_photo *D, struct paramed_type *T); +void store_ds_constructor_photo_size_empty (struct tl_ds_photo_size *D, struct paramed_type *T); +void store_ds_constructor_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void store_ds_constructor_photo_cached_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void store_ds_constructor_privacy_key_status_timestamp (struct tl_ds_privacy_key *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_allow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_allow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_allow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_disallow_contacts (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_disallow_all (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_privacy_value_disallow_users (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_constructor_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T); +void store_ds_constructor_reply_keyboard_hide (struct tl_ds_reply_markup *D, struct paramed_type *T); +void store_ds_constructor_reply_keyboard_force_reply (struct tl_ds_reply_markup *D, struct paramed_type *T); +void store_ds_constructor_reply_keyboard_markup (struct tl_ds_reply_markup *D, struct paramed_type *T); +void store_ds_constructor_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T); +void store_ds_constructor_send_message_typing_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_cancel_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_record_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_video_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_video_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_record_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_audio_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_audio_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_photo_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_document_action_l27 (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_upload_document_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_geo_location_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_send_message_choose_contact_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_constructor_server_d_h_params_fail (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void store_ds_constructor_server_d_h_params_ok (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void store_ds_constructor_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T); +void store_ds_constructor_dh_gen_ok (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void store_ds_constructor_dh_gen_retry (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void store_ds_constructor_dh_gen_fail (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void store_ds_constructor_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T); +void store_ds_constructor_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T); +void store_ds_constructor_string (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_constructor_update_new_message (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_message_i_d (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_delete_messages (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_typing (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_chat_user_typing (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_chat_participants (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_status (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_name (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_photo (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_contact_registered (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_contact_link (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_new_authorization (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_new_geo_chat_message (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_new_encrypted_message (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_encrypted_chat_typing (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_encryption (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_encrypted_messages_read (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_chat_participant_add (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_chat_participant_delete (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_dc_options (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_blocked (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_notify_settings (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_service_notification (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_privacy (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_user_phone (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_read_history_inbox (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_read_history_outbox (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_web_page (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_read_messages_contents (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_update_msg_update (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_constructor_updates_too_long (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_update_short_message (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_update_short_chat_message (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_update_short (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_updates_combined (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_updates (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_constructor_user_empty (struct tl_ds_user *D, struct paramed_type *T); +void store_ds_constructor_user (struct tl_ds_user *D, struct paramed_type *T); +void store_ds_constructor_user_full (struct tl_ds_user_full *D, struct paramed_type *T); +void store_ds_constructor_user_profile_photo_empty (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void store_ds_constructor_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void store_ds_constructor_user_status_empty (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_user_status_online (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_user_status_offline (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_user_status_recently (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_user_status_last_week (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_user_status_last_month (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_constructor_vector (struct tl_ds_vector *D, struct paramed_type *T); +void store_ds_constructor_video_empty (struct tl_ds_video *D, struct paramed_type *T); +void store_ds_constructor_video (struct tl_ds_video *D, struct paramed_type *T); +void store_ds_constructor_video_l27 (struct tl_ds_video *D, struct paramed_type *T); +void store_ds_constructor_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T); +void store_ds_constructor_wall_paper_solid (struct tl_ds_wall_paper *D, struct paramed_type *T); +void store_ds_constructor_web_page_empty (struct tl_ds_web_page *D, struct paramed_type *T); +void store_ds_constructor_web_page_pending (struct tl_ds_web_page *D, struct paramed_type *T); +void store_ds_constructor_web_page (struct tl_ds_web_page *D, struct paramed_type *T); +void store_ds_constructor_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T); +void store_ds_constructor_account_no_password (struct tl_ds_account_password *D, struct paramed_type *T); +void store_ds_constructor_account_password (struct tl_ds_account_password *D, struct paramed_type *T); +void store_ds_constructor_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T); +void store_ds_constructor_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T); +void store_ds_constructor_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T); +void store_ds_constructor_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T); +void store_ds_constructor_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T); +void store_ds_constructor_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T); +void store_ds_constructor_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T); +void store_ds_constructor_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T); +void store_ds_constructor_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void store_ds_constructor_auth_sent_app_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void store_ds_constructor_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T); +void store_ds_constructor_binlog_start (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_dc_option (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_dc_option_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_auth_key (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_default_dc (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_dc_signed (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_our_id (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_dh_params (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_pts (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_qts (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_date (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_seq (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_encr_chat_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_encr_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_encr_chat_exchange_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_user_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_user_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_chat_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_chat_add_participant (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_chat_del_participant (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_set_msg_id (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_message_delete (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_message_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_message_encr_new (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_msg_update (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_binlog_reset_authorization (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_constructor_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void store_ds_constructor_contacts_blocked_slice (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void store_ds_constructor_contacts_contacts_not_modified (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void store_ds_constructor_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void store_ds_constructor_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T); +void store_ds_constructor_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T); +void store_ds_constructor_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T); +void store_ds_constructor_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T); +void store_ds_constructor_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T); +void store_ds_constructor_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void store_ds_constructor_geochats_messages_slice (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void store_ds_constructor_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T); +void store_ds_constructor_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void store_ds_constructor_help_no_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void store_ds_constructor_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T); +void store_ds_constructor_help_support (struct tl_ds_help_support *D, struct paramed_type *T); +void store_ds_constructor_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T); +void store_ds_constructor_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T); +void store_ds_constructor_messages_all_stickers_not_modified (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void store_ds_constructor_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void store_ds_constructor_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T); +void store_ds_constructor_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T); +void store_ds_constructor_messages_dh_config_not_modified (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void store_ds_constructor_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void store_ds_constructor_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void store_ds_constructor_messages_dialogs_slice (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void store_ds_constructor_messages_message_empty (struct tl_ds_messages_message *D, struct paramed_type *T); +void store_ds_constructor_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T); +void store_ds_constructor_messages_messages_slice (struct tl_ds_messages_messages *D, struct paramed_type *T); +void store_ds_constructor_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void store_ds_constructor_messages_sent_encrypted_file (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void store_ds_constructor_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void store_ds_constructor_messages_sent_message_link (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void store_ds_constructor_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T); +void store_ds_constructor_messages_stickers_not_modified (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void store_ds_constructor_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void store_ds_constructor_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T); +void store_ds_constructor_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T); +void store_ds_constructor_photos_photos_slice (struct tl_ds_photos_photos *D, struct paramed_type *T); +void store_ds_constructor_storage_file_unknown (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_jpeg (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_gif (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_png (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_pdf (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_mp3 (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_mov (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_partial (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_mp4 (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_storage_file_webp (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_constructor_updates_difference_empty (struct tl_ds_updates_difference *D, struct paramed_type *T); +void store_ds_constructor_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T); +void store_ds_constructor_updates_difference_slice (struct tl_ds_updates_difference *D, struct paramed_type *T); +void store_ds_constructor_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T); +void store_ds_constructor_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T); +void store_ds_type_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T); +void store_ds_type_bare_account_days_t_t_l (struct tl_ds_account_days_t_t_l *D, struct paramed_type *T); +void store_ds_type_audio (struct tl_ds_audio *D, struct paramed_type *T); +void store_ds_type_bare_audio (struct tl_ds_audio *D, struct paramed_type *T); +void store_ds_type_authorization (struct tl_ds_authorization *D, struct paramed_type *T); +void store_ds_type_bare_authorization (struct tl_ds_authorization *D, struct paramed_type *T); +void store_ds_type_bool (struct tl_ds_bool *D, struct paramed_type *T); +void store_ds_type_bare_bool (struct tl_ds_bool *D, struct paramed_type *T); +void store_ds_type_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T); +void store_ds_type_bare_bot_command (struct tl_ds_bot_command *D, struct paramed_type *T); +void store_ds_type_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T); +void store_ds_type_bare_bot_info (struct tl_ds_bot_info *D, struct paramed_type *T); +void store_ds_type_bytes (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_type_bare_bytes (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_type_chat (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_type_bare_chat (struct tl_ds_chat *D, struct paramed_type *T); +void store_ds_type_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T); +void store_ds_type_bare_chat_full (struct tl_ds_chat_full *D, struct paramed_type *T); +void store_ds_type_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T); +void store_ds_type_bare_chat_invite (struct tl_ds_chat_invite *D, struct paramed_type *T); +void store_ds_type_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T); +void store_ds_type_bare_chat_located (struct tl_ds_chat_located *D, struct paramed_type *T); +void store_ds_type_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T); +void store_ds_type_bare_chat_participant (struct tl_ds_chat_participant *D, struct paramed_type *T); +void store_ds_type_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T); +void store_ds_type_bare_chat_participants (struct tl_ds_chat_participants *D, struct paramed_type *T); +void store_ds_type_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T); +void store_ds_type_bare_chat_photo (struct tl_ds_chat_photo *D, struct paramed_type *T); +void store_ds_type_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T); +void store_ds_type_bare_client_d_h_inner_data (struct tl_ds_client_d_h_inner_data *D, struct paramed_type *T); +void store_ds_type_config (struct tl_ds_config *D, struct paramed_type *T); +void store_ds_type_bare_config (struct tl_ds_config *D, struct paramed_type *T); +void store_ds_type_contact (struct tl_ds_contact *D, struct paramed_type *T); +void store_ds_type_bare_contact (struct tl_ds_contact *D, struct paramed_type *T); +void store_ds_type_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T); +void store_ds_type_bare_contact_blocked (struct tl_ds_contact_blocked *D, struct paramed_type *T); +void store_ds_type_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T); +void store_ds_type_bare_contact_found (struct tl_ds_contact_found *D, struct paramed_type *T); +void store_ds_type_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_type_bare_contact_link (struct tl_ds_contact_link *D, struct paramed_type *T); +void store_ds_type_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T); +void store_ds_type_bare_contact_status (struct tl_ds_contact_status *D, struct paramed_type *T); +void store_ds_type_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T); +void store_ds_type_bare_contact_suggested (struct tl_ds_contact_suggested *D, struct paramed_type *T); +void store_ds_type_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T); +void store_ds_type_bare_dc_option (struct tl_ds_dc_option *D, struct paramed_type *T); +void store_ds_type_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void store_ds_type_bare_decrypted_message (struct tl_ds_decrypted_message *D, struct paramed_type *T); +void store_ds_type_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_type_bare_decrypted_message_action (struct tl_ds_decrypted_message_action *D, struct paramed_type *T); +void store_ds_type_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T); +void store_ds_type_bare_decrypted_message_layer (struct tl_ds_decrypted_message_layer *D, struct paramed_type *T); +void store_ds_type_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_type_bare_decrypted_message_media (struct tl_ds_decrypted_message_media *D, struct paramed_type *T); +void store_ds_type_dialog (struct tl_ds_dialog *D, struct paramed_type *T); +void store_ds_type_bare_dialog (struct tl_ds_dialog *D, struct paramed_type *T); +void store_ds_type_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T); +void store_ds_type_bare_disabled_feature (struct tl_ds_disabled_feature *D, struct paramed_type *T); +void store_ds_type_document (struct tl_ds_document *D, struct paramed_type *T); +void store_ds_type_bare_document (struct tl_ds_document *D, struct paramed_type *T); +void store_ds_type_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_type_bare_document_attribute (struct tl_ds_document_attribute *D, struct paramed_type *T); +void store_ds_type_double (double *D, struct paramed_type *T); +void store_ds_type_bare_double (double *D, struct paramed_type *T); +void store_ds_type_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_type_bare_encrypted_chat (struct tl_ds_encrypted_chat *D, struct paramed_type *T); +void store_ds_type_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void store_ds_type_bare_encrypted_file (struct tl_ds_encrypted_file *D, struct paramed_type *T); +void store_ds_type_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void store_ds_type_bare_encrypted_message (struct tl_ds_encrypted_message *D, struct paramed_type *T); +void store_ds_type_error (struct tl_ds_error *D, struct paramed_type *T); +void store_ds_type_bare_error (struct tl_ds_error *D, struct paramed_type *T); +void store_ds_type_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void store_ds_type_bare_exported_chat_invite (struct tl_ds_exported_chat_invite *D, struct paramed_type *T); +void store_ds_type_file_location (struct tl_ds_file_location *D, struct paramed_type *T); +void store_ds_type_bare_file_location (struct tl_ds_file_location *D, struct paramed_type *T); +void store_ds_type_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void store_ds_type_bare_geo_chat_message (struct tl_ds_geo_chat_message *D, struct paramed_type *T); +void store_ds_type_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T); +void store_ds_type_bare_geo_point (struct tl_ds_geo_point *D, struct paramed_type *T); +void store_ds_type_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T); +void store_ds_type_bare_imported_contact (struct tl_ds_imported_contact *D, struct paramed_type *T); +void store_ds_type_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T); +void store_ds_type_bare_input_app_event (struct tl_ds_input_app_event *D, struct paramed_type *T); +void store_ds_type_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T); +void store_ds_type_bare_input_audio (struct tl_ds_input_audio *D, struct paramed_type *T); +void store_ds_type_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void store_ds_type_bare_input_chat_photo (struct tl_ds_input_chat_photo *D, struct paramed_type *T); +void store_ds_type_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T); +void store_ds_type_bare_input_contact (struct tl_ds_input_contact *D, struct paramed_type *T); +void store_ds_type_input_document (struct tl_ds_input_document *D, struct paramed_type *T); +void store_ds_type_bare_input_document (struct tl_ds_input_document *D, struct paramed_type *T); +void store_ds_type_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T); +void store_ds_type_bare_input_encrypted_chat (struct tl_ds_input_encrypted_chat *D, struct paramed_type *T); +void store_ds_type_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_type_bare_input_encrypted_file (struct tl_ds_input_encrypted_file *D, struct paramed_type *T); +void store_ds_type_input_file (struct tl_ds_input_file *D, struct paramed_type *T); +void store_ds_type_bare_input_file (struct tl_ds_input_file *D, struct paramed_type *T); +void store_ds_type_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_type_bare_input_file_location (struct tl_ds_input_file_location *D, struct paramed_type *T); +void store_ds_type_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T); +void store_ds_type_bare_input_geo_chat (struct tl_ds_input_geo_chat *D, struct paramed_type *T); +void store_ds_type_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void store_ds_type_bare_input_geo_point (struct tl_ds_input_geo_point *D, struct paramed_type *T); +void store_ds_type_input_media (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_type_bare_input_media (struct tl_ds_input_media *D, struct paramed_type *T); +void store_ds_type_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_type_bare_input_notify_peer (struct tl_ds_input_notify_peer *D, struct paramed_type *T); +void store_ds_type_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_type_bare_input_peer (struct tl_ds_input_peer *D, struct paramed_type *T); +void store_ds_type_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void store_ds_type_bare_input_peer_notify_events (struct tl_ds_input_peer_notify_events *D, struct paramed_type *T); +void store_ds_type_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T); +void store_ds_type_bare_input_peer_notify_settings (struct tl_ds_input_peer_notify_settings *D, struct paramed_type *T); +void store_ds_type_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T); +void store_ds_type_bare_input_photo (struct tl_ds_input_photo *D, struct paramed_type *T); +void store_ds_type_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void store_ds_type_bare_input_photo_crop (struct tl_ds_input_photo_crop *D, struct paramed_type *T); +void store_ds_type_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T); +void store_ds_type_bare_input_privacy_key (struct tl_ds_input_privacy_key *D, struct paramed_type *T); +void store_ds_type_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_type_bare_input_privacy_rule (struct tl_ds_input_privacy_rule *D, struct paramed_type *T); +void store_ds_type_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void store_ds_type_bare_input_sticker_set (struct tl_ds_input_sticker_set *D, struct paramed_type *T); +void store_ds_type_input_user (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_type_bare_input_user (struct tl_ds_input_user *D, struct paramed_type *T); +void store_ds_type_input_video (struct tl_ds_input_video *D, struct paramed_type *T); +void store_ds_type_bare_input_video (struct tl_ds_input_video *D, struct paramed_type *T); +void store_ds_type_int (int *D, struct paramed_type *T); +void store_ds_type_bare_int (int *D, struct paramed_type *T); +void store_ds_type_int128 (struct tl_ds_int128 *D, struct paramed_type *T); +void store_ds_type_bare_int128 (struct tl_ds_int128 *D, struct paramed_type *T); +void store_ds_type_int256 (struct tl_ds_int256 *D, struct paramed_type *T); +void store_ds_type_bare_int256 (struct tl_ds_int256 *D, struct paramed_type *T); +void store_ds_type_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T); +void store_ds_type_bare_keyboard_button (struct tl_ds_keyboard_button *D, struct paramed_type *T); +void store_ds_type_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T); +void store_ds_type_bare_keyboard_button_row (struct tl_ds_keyboard_button_row *D, struct paramed_type *T); +void store_ds_type_long (long long *D, struct paramed_type *T); +void store_ds_type_bare_long (long long *D, struct paramed_type *T); +void store_ds_type_message (struct tl_ds_message *D, struct paramed_type *T); +void store_ds_type_bare_message (struct tl_ds_message *D, struct paramed_type *T); +void store_ds_type_message_action (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_type_bare_message_action (struct tl_ds_message_action *D, struct paramed_type *T); +void store_ds_type_message_media (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_type_bare_message_media (struct tl_ds_message_media *D, struct paramed_type *T); +void store_ds_type_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_type_bare_messages_filter (struct tl_ds_messages_filter *D, struct paramed_type *T); +void store_ds_type_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T); +void store_ds_type_bare_nearest_dc (struct tl_ds_nearest_dc *D, struct paramed_type *T); +void store_ds_type_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_type_bare_notify_peer (struct tl_ds_notify_peer *D, struct paramed_type *T); +void store_ds_type_null (struct tl_ds_null *D, struct paramed_type *T); +void store_ds_type_bare_null (struct tl_ds_null *D, struct paramed_type *T); +void store_ds_type_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void store_ds_type_bare_p_q_inner_data (struct tl_ds_p_q_inner_data *D, struct paramed_type *T); +void store_ds_type_peer (struct tl_ds_peer *D, struct paramed_type *T); +void store_ds_type_bare_peer (struct tl_ds_peer *D, struct paramed_type *T); +void store_ds_type_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void store_ds_type_bare_peer_notify_events (struct tl_ds_peer_notify_events *D, struct paramed_type *T); +void store_ds_type_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void store_ds_type_bare_peer_notify_settings (struct tl_ds_peer_notify_settings *D, struct paramed_type *T); +void store_ds_type_photo (struct tl_ds_photo *D, struct paramed_type *T); +void store_ds_type_bare_photo (struct tl_ds_photo *D, struct paramed_type *T); +void store_ds_type_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void store_ds_type_bare_photo_size (struct tl_ds_photo_size *D, struct paramed_type *T); +void store_ds_type_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T); +void store_ds_type_bare_privacy_key (struct tl_ds_privacy_key *D, struct paramed_type *T); +void store_ds_type_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_type_bare_privacy_rule (struct tl_ds_privacy_rule *D, struct paramed_type *T); +void store_ds_type_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T); +void store_ds_type_bare_received_notify_message (struct tl_ds_received_notify_message *D, struct paramed_type *T); +void store_ds_type_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T); +void store_ds_type_bare_reply_markup (struct tl_ds_reply_markup *D, struct paramed_type *T); +void store_ds_type_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T); +void store_ds_type_bare_res_p_q (struct tl_ds_res_p_q *D, struct paramed_type *T); +void store_ds_type_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_type_bare_send_message_action (struct tl_ds_send_message_action *D, struct paramed_type *T); +void store_ds_type_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void store_ds_type_bare_server_d_h_params (struct tl_ds_server_d_h_params *D, struct paramed_type *T); +void store_ds_type_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T); +void store_ds_type_bare_server_d_h_inner_data (struct tl_ds_server_d_h_inner_data *D, struct paramed_type *T); +void store_ds_type_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void store_ds_type_bare_set_client_d_h_params_answer (struct tl_ds_set_client_d_h_params_answer *D, struct paramed_type *T); +void store_ds_type_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T); +void store_ds_type_bare_sticker_pack (struct tl_ds_sticker_pack *D, struct paramed_type *T); +void store_ds_type_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T); +void store_ds_type_bare_sticker_set (struct tl_ds_sticker_set *D, struct paramed_type *T); +void store_ds_type_string (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_type_bare_string (struct tl_ds_string *D, struct paramed_type *T); +void store_ds_type_update (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_type_bare_update (struct tl_ds_update *D, struct paramed_type *T); +void store_ds_type_updates (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_type_bare_updates (struct tl_ds_updates *D, struct paramed_type *T); +void store_ds_type_user (struct tl_ds_user *D, struct paramed_type *T); +void store_ds_type_bare_user (struct tl_ds_user *D, struct paramed_type *T); +void store_ds_type_user_full (struct tl_ds_user_full *D, struct paramed_type *T); +void store_ds_type_bare_user_full (struct tl_ds_user_full *D, struct paramed_type *T); +void store_ds_type_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void store_ds_type_bare_user_profile_photo (struct tl_ds_user_profile_photo *D, struct paramed_type *T); +void store_ds_type_user_status (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_type_bare_user_status (struct tl_ds_user_status *D, struct paramed_type *T); +void store_ds_type_vector (struct tl_ds_vector *D, struct paramed_type *T); +void store_ds_type_bare_vector (struct tl_ds_vector *D, struct paramed_type *T); +void store_ds_type_video (struct tl_ds_video *D, struct paramed_type *T); +void store_ds_type_bare_video (struct tl_ds_video *D, struct paramed_type *T); +void store_ds_type_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T); +void store_ds_type_bare_wall_paper (struct tl_ds_wall_paper *D, struct paramed_type *T); +void store_ds_type_web_page (struct tl_ds_web_page *D, struct paramed_type *T); +void store_ds_type_bare_web_page (struct tl_ds_web_page *D, struct paramed_type *T); +void store_ds_type_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T); +void store_ds_type_bare_account_authorizations (struct tl_ds_account_authorizations *D, struct paramed_type *T); +void store_ds_type_account_password (struct tl_ds_account_password *D, struct paramed_type *T); +void store_ds_type_bare_account_password (struct tl_ds_account_password *D, struct paramed_type *T); +void store_ds_type_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T); +void store_ds_type_bare_account_password_input_settings (struct tl_ds_account_password_input_settings *D, struct paramed_type *T); +void store_ds_type_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T); +void store_ds_type_bare_account_password_settings (struct tl_ds_account_password_settings *D, struct paramed_type *T); +void store_ds_type_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T); +void store_ds_type_bare_account_privacy_rules (struct tl_ds_account_privacy_rules *D, struct paramed_type *T); +void store_ds_type_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T); +void store_ds_type_bare_account_sent_change_phone_code (struct tl_ds_account_sent_change_phone_code *D, struct paramed_type *T); +void store_ds_type_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T); +void store_ds_type_bare_auth_authorization (struct tl_ds_auth_authorization *D, struct paramed_type *T); +void store_ds_type_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T); +void store_ds_type_bare_auth_checked_phone (struct tl_ds_auth_checked_phone *D, struct paramed_type *T); +void store_ds_type_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T); +void store_ds_type_bare_auth_exported_authorization (struct tl_ds_auth_exported_authorization *D, struct paramed_type *T); +void store_ds_type_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T); +void store_ds_type_bare_auth_password_recovery (struct tl_ds_auth_password_recovery *D, struct paramed_type *T); +void store_ds_type_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void store_ds_type_bare_auth_sent_code (struct tl_ds_auth_sent_code *D, struct paramed_type *T); +void store_ds_type_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T); +void store_ds_type_bare_binlog_encr_key (struct tl_ds_binlog_encr_key *D, struct paramed_type *T); +void store_ds_type_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_type_bare_binlog_update (struct tl_ds_binlog_update *D, struct paramed_type *T); +void store_ds_type_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void store_ds_type_bare_contacts_blocked (struct tl_ds_contacts_blocked *D, struct paramed_type *T); +void store_ds_type_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void store_ds_type_bare_contacts_contacts (struct tl_ds_contacts_contacts *D, struct paramed_type *T); +void store_ds_type_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T); +void store_ds_type_bare_contacts_found (struct tl_ds_contacts_found *D, struct paramed_type *T); +void store_ds_type_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T); +void store_ds_type_bare_contacts_imported_contacts (struct tl_ds_contacts_imported_contacts *D, struct paramed_type *T); +void store_ds_type_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T); +void store_ds_type_bare_contacts_link (struct tl_ds_contacts_link *D, struct paramed_type *T); +void store_ds_type_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T); +void store_ds_type_bare_contacts_suggested (struct tl_ds_contacts_suggested *D, struct paramed_type *T); +void store_ds_type_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T); +void store_ds_type_bare_geochats_located (struct tl_ds_geochats_located *D, struct paramed_type *T); +void store_ds_type_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void store_ds_type_bare_geochats_messages (struct tl_ds_geochats_messages *D, struct paramed_type *T); +void store_ds_type_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T); +void store_ds_type_bare_geochats_stated_message (struct tl_ds_geochats_stated_message *D, struct paramed_type *T); +void store_ds_type_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void store_ds_type_bare_help_app_update (struct tl_ds_help_app_update *D, struct paramed_type *T); +void store_ds_type_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T); +void store_ds_type_bare_help_invite_text (struct tl_ds_help_invite_text *D, struct paramed_type *T); +void store_ds_type_help_support (struct tl_ds_help_support *D, struct paramed_type *T); +void store_ds_type_bare_help_support (struct tl_ds_help_support *D, struct paramed_type *T); +void store_ds_type_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T); +void store_ds_type_bare_messages_affected_history (struct tl_ds_messages_affected_history *D, struct paramed_type *T); +void store_ds_type_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T); +void store_ds_type_bare_messages_affected_messages (struct tl_ds_messages_affected_messages *D, struct paramed_type *T); +void store_ds_type_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void store_ds_type_bare_messages_all_stickers (struct tl_ds_messages_all_stickers *D, struct paramed_type *T); +void store_ds_type_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T); +void store_ds_type_bare_messages_chat_full (struct tl_ds_messages_chat_full *D, struct paramed_type *T); +void store_ds_type_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T); +void store_ds_type_bare_messages_chats (struct tl_ds_messages_chats *D, struct paramed_type *T); +void store_ds_type_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void store_ds_type_bare_messages_dh_config (struct tl_ds_messages_dh_config *D, struct paramed_type *T); +void store_ds_type_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void store_ds_type_bare_messages_dialogs (struct tl_ds_messages_dialogs *D, struct paramed_type *T); +void store_ds_type_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T); +void store_ds_type_bare_messages_message (struct tl_ds_messages_message *D, struct paramed_type *T); +void store_ds_type_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T); +void store_ds_type_bare_messages_messages (struct tl_ds_messages_messages *D, struct paramed_type *T); +void store_ds_type_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void store_ds_type_bare_messages_sent_encrypted_message (struct tl_ds_messages_sent_encrypted_message *D, struct paramed_type *T); +void store_ds_type_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void store_ds_type_bare_messages_sent_message (struct tl_ds_messages_sent_message *D, struct paramed_type *T); +void store_ds_type_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T); +void store_ds_type_bare_messages_sticker_set (struct tl_ds_messages_sticker_set *D, struct paramed_type *T); +void store_ds_type_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void store_ds_type_bare_messages_stickers (struct tl_ds_messages_stickers *D, struct paramed_type *T); +void store_ds_type_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T); +void store_ds_type_bare_photos_photo (struct tl_ds_photos_photo *D, struct paramed_type *T); +void store_ds_type_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T); +void store_ds_type_bare_photos_photos (struct tl_ds_photos_photos *D, struct paramed_type *T); +void store_ds_type_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_type_bare_storage_file_type (struct tl_ds_storage_file_type *D, struct paramed_type *T); +void store_ds_type_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T); +void store_ds_type_bare_updates_difference (struct tl_ds_updates_difference *D, struct paramed_type *T); +void store_ds_type_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T); +void store_ds_type_bare_updates_state (struct tl_ds_updates_state *D, struct paramed_type *T); +void store_ds_type_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T); +void store_ds_type_bare_upload_file (struct tl_ds_upload_file *D, struct paramed_type *T); +void store_ds_type_any (void *D, struct paramed_type *T); diff --git a/libs/tgl/src/auto/auto-store.c b/libs/tgl/src/auto/auto-store.c new file mode 100644 index 0000000000..50d5ff7970 --- /dev/null +++ b/libs/tgl/src/auto/auto-store.c @@ -0,0 +1,24400 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#include "..\mtproto-common.h" +#include "auto-store.h" +#include "..\auto-static-store.c" +#else +#include "auto.h" +#include "mtproto-common.h" +#include "auto/auto-store.h" +#include "auto-static-store.c" +#endif +#include +int store_constructor_account_days_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + return 0; +} +int store_constructor_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "platform", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "app_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "date_created", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "date_active", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field11) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field12) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "region", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field13) < 0) { return -1;} + return 0; +} +int store_constructor_bool_false (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int store_constructor_bool_true (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; } + return 0; +} +int store_constructor_bot_command (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_bot_command_old (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "command", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "params", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int store_constructor_bot_info_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + return 0; +} +int store_constructor_bot_info (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "share_text", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "commands", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field5) < 0) { return -1;} + return 0; +} +int store_constructor_bytes (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_photo (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "left", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int store_constructor_chat_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_point (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_photo (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "checked_in", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field10) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + return 0; +} +int store_constructor_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_participants (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer_notify_settings (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "exported_invite", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_exported_chat_invite (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field6) < 0) { return -1;} + return 0; +} +int store_constructor_chat_invite_already (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat (field1) < 0) { return -1;} + return 0; +} +int store_constructor_chat_invite (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_chat_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "distance", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_chat_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_chat_participants_forbidden (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + return 0; +} +int store_constructor_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field2) < 0) { return -1;} + return 0; +} +int store_constructor_client_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "retry_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "test_mode", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "chat_size_max", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "broadcast_size_max", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 19 && !cur_token_quoted && !memcmp (cur_token, "forwarded_count_max", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "online_update_period_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "offline_blur_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "offline_idle_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "online_cloud_timeout_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 21 && !cur_token_quoted && !memcmp (cur_token, "notify_cloud_delay_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field13) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 23 && !cur_token_quoted && !memcmp (cur_token, "notify_default_delay_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field14) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "chat_big_size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field15) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 19 && !cur_token_quoted && !memcmp (cur_token, "push_chat_period_ms", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field16 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field16) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "push_chat_limit", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field17 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field17) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "disabled_features", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field18 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field18) < 0) { return -1;} + return 0; +} +int store_constructor_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "mutual", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contact_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contact_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_contact_link_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int store_constructor_contact_link_none (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int store_constructor_contact_link_has_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int store_constructor_contact_link_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return -1; } + return 0; +} +int store_constructor_contact_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_status (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contact_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "mutual_contacts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_dc_option_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "hostname", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_decrypted_message_media (field4) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_decrypted_message_action (field2) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "ttl_seconds", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_read_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_flush_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int store_constructor_decrypted_message_action_resend (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "start_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "end_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_send_message_action (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_request_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_accept_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_abort_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_commit_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_action_noop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; } + return 0; +} +int store_constructor_decrypted_message_layer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_decrypted_message (field5) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + return 0; +} +int store_constructor_decrypted_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field8) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field10) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_external_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo_size (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field8) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "str_thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field9) < 0) { return -1;} + return 0; +} +int store_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int store_constructor_dialog (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "top_message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "read_inbox_max_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer_notify_settings (field5) < 0) { return -1;} + return 0; +} +int store_constructor_disabled_feature (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "feature", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo_size (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field8) < 0) { return -1;} + return 0; +} +int store_constructor_document_l19 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo_size (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_image_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_animated (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + return 0; +} +int store_constructor_document_attribute_sticker_l28 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_sticker (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "alt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_sticker_set (field2) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_document_attribute_filename (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_double (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; } + if (is_double ()) { + out_double (get_double()); + local_next_token (); + return 0; + } else { + return -1; + } +} +int store_constructor_encrypted_chat_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_chat_waiting (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_chat_requested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field6) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "g_a_or_b", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field7) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_chat_discarded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + return 0; +} +int store_constructor_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_encrypted_file (field5) < 0) { return -1;} + return 0; +} +int store_constructor_encrypted_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int store_constructor_error (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_chat_invite_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + return 0; +} +int store_constructor_chat_invite_exported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_file_location_unavailable (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int store_constructor_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int store_constructor_geo_chat_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field6) < 0) { return -1;} + return 0; +} +int store_constructor_geo_chat_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_action (field5) < 0) { return -1;} + return 0; +} +int store_constructor_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + return 0; +} +int store_constructor_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int store_constructor_imported_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_app_event (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "time", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_audio_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + return 0; +} +int store_constructor_input_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_chat_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + return 0; +} +int store_constructor_input_chat_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_chat_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo_crop (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_phone_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_document_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + return 0; +} +int store_constructor_input_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_encrypted_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_encrypted_file_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + return 0; +} +int store_constructor_input_encrypted_file_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_file_big (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_video_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_encrypted_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_audio_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_document_file_location (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_geo_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_geo_point_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + return 0; +} +int store_constructor_input_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "latitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "longitude", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + return 0; +} +int store_constructor_input_media_uploaded_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_geo_point (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_point (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_uploaded_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "video_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_video (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_uploaded_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "audio_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_audio (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_uploaded_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "document_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_document (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_point (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "provider", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int store_constructor_input_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int store_constructor_input_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int store_constructor_input_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + return 0; +} +int store_constructor_input_notify_geo_chat_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "geo_peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_peer_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int store_constructor_input_peer_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + return 0; +} +int store_constructor_input_peer_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_peer_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int store_constructor_input_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; } + return 0; +} +int store_constructor_input_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_input_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + return 0; +} +int store_constructor_input_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_photo_crop_auto (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + return 0; +} +int store_constructor_input_photo_crop (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "crop_left", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "crop_top", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "crop_width", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_double (field3) < 0) { return -1;} + return 0; +} +int store_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; } + return 0; +} +int store_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int store_constructor_input_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int store_constructor_input_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int store_constructor_input_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + return 0; +} +int store_constructor_input_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_sticker_set_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + return 0; +} +int store_constructor_input_sticker_set_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_sticker_set_short_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int store_constructor_input_user_self (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + return 0; +} +int store_constructor_input_user_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_user_foreign (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_input_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + return 0; +} +int store_constructor_input_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_int (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; } + if (is_int ()) { + out_int (get_int ()); + local_next_token (); + return 0; + } else { + return -1; + } +} +int store_constructor_int128 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_int256 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field4) < 0) { return -1;} + return 0; +} +int store_constructor_keyboard_button (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_keyboard_button_row (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; } + if (is_int ()) { + out_long (get_int ()); + local_next_token (); + return 0; + } else { + return -1; + } +} +int store_constructor_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field10) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_reply_markup (field11) < 0) { return -1;} + } + return 0; +} +int store_constructor_message_service (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_action (field6) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int store_constructor_message_action_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_chat_edit_title (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_chat_edit_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_chat_delete_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int store_constructor_message_action_chat_add_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_chat_delete_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_geo_chat_create (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_message_action_geo_chat_checkin (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + return 0; +} +int store_constructor_message_action_chat_joined_by_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int store_constructor_message_media_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_video (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_geo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_point (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_contact (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_unsupported (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + return 0; +} +int store_constructor_message_media_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "document", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_document (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "audio", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_audio (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_web_page (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_venue (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_point (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "provider", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "venue_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field1) < 0) { return -1;} + return 0; +} +int store_constructor_message_media_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_video (field1) < 0) { return -1;} + return 0; +} +int store_constructor_input_messages_filter_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_photo_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_document (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_input_messages_filter_audio (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return -1; } + return 0; +} +int store_constructor_nearest_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "nearest_dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_notify_peer (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field1) < 0) { return -1;} + return 0; +} +int store_constructor_notify_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int store_constructor_notify_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int store_constructor_notify_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; } + return 0; +} +int store_constructor_null (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; } + return 0; +} +int store_constructor_p_q_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int256 (field6) < 0) { return -1;} + return 0; +} +int store_constructor_p_q_inner_data_temp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int256 (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "expires_in", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int store_constructor_peer_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_peer_chat (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_peer_notify_events_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int store_constructor_peer_notify_events_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; } + return 0; +} +int store_constructor_peer_notify_settings_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + return 0; +} +int store_constructor_peer_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_point (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field6) < 0) { return -1;} + return 0; +} +int store_constructor_photo_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_point (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field7) < 0) { return -1;} + return 0; +} +int store_constructor_photo_size_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_photo_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_photo_cached_size (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field5) < 0) { return -1;} + return 0; +} +int store_constructor_privacy_key_status_timestamp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; } + return 0; +} +int store_constructor_privacy_value_allow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int store_constructor_privacy_value_allow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int store_constructor_privacy_value_allow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_privacy_value_disallow_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int store_constructor_privacy_value_disallow_all (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + return 0; +} +int store_constructor_privacy_value_disallow_users (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_received_notify_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_reply_keyboard_hide (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_reply_keyboard_force_reply (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_reply_keyboard_markup (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "rows", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_res_p_q (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 30 && !cur_token_quoted && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_send_message_typing_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_cancel_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_record_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_upload_video_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_send_message_record_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_upload_audio_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_send_message_upload_photo_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_upload_document_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "progress", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_send_message_geo_location_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_send_message_choose_contact_action (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return -1; } + return 0; +} +int store_constructor_server_d_h_params_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int store_constructor_server_d_h_params_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "encrypted_answer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + return 0; +} +int store_constructor_server_d_h_inner_data (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "dh_prime", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "server_time", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int store_constructor_dh_gen_ok (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash1", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int store_constructor_dh_gen_retry (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash2", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int store_constructor_dh_gen_fail (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash3", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field3) < 0) { return -1;} + return 0; +} +int store_constructor_sticker_pack (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "short_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_string (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; } + if (cur_token_len >= 0) { + out_cstring (cur_token, cur_token_len); + local_next_token (); + return 0; + } else { + return -1; + } +} +int store_constructor_update_new_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_message_i_d (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_delete_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_send_message_action (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_chat_user_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_send_message_action (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_chat_participants (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_participants (field1) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_status (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_status (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_name (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_profile_photo (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "previous", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_contact_registered (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_contact_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_contact_link (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_contact_link (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_new_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "auth_key_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "device", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_new_geo_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "geo_message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_chat_message (field1) < 0) { return -1;} + return 0; +} +int store_constructor_update_new_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "encr_message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_encrypted_message (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_encrypted_chat_typing (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_update_encryption (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "encr_chat", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_encrypted_chat (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_encrypted_messages_read (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_chat_participant_add (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_chat_participant_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_dc_options (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_notify_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "notify_peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_notify_peer (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer_notify_settings (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_service_notification (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "message_text", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "popup", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_privacy (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_privacy_key (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_user_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_update_read_history_inbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_read_history_outbox (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_update_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "webpage", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_web_page (field1) < 0) { return -1;} + return 0; +} +int store_constructor_update_read_messages_contents (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_update_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_updates_too_long (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + return 0; +} +int store_constructor_update_short_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int store_constructor_update_short_chat_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + } + return 0; +} +int store_constructor_update_short (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "update", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_update (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_updates_combined (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "seq_start", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + return 0; +} +int store_constructor_updates (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_user_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_user (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_profile_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_status (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 14)) { + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "bot_info_version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + } + return 0; +} +int store_constructor_user_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_contacts_link (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "profile_photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_peer_notify_settings (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bot_info (field6) < 0) { return -1;} + return 0; +} +int store_constructor_user_profile_photo_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + return 0; +} +int store_constructor_user_profile_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "photo_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_file_location (field3) < 0) { return -1;} + return 0; +} +int store_constructor_user_status_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int store_constructor_user_status_online (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_user_status_offline (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "was_online", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_user_status_recently (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int store_constructor_user_status_last_week (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int store_constructor_user_status_last_month (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; } + return 0; +} +int store_constructor_vector (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; } + if (ODDP(T->params[0])) { return -1; } + struct paramed_type *var0 = T->params[0]; assert (var0); + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var1 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var1); + local_next_token (); + expect_token ("[", 1); + int multiplicity3 = PTR2INT ( + ((void *)var1) + 0 ); + struct paramed_type *field3 = + var0; + while (multiplicity3 -- > 0) { + if (store_type_any (field3) < 0) { return -1;} + } + expect_token ("]", 1); + return 0; +} +int store_constructor_video_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_video (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo_size (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + return 0; +} +int store_constructor_video_l27 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo_size (field9) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + return 0; +} +int store_constructor_wall_paper (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_wall_paper_solid (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bg_color", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_web_page_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_web_page_pending (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_web_page (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "display_url", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "site_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 3)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "description", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 4)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "embed_url", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 5)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "embed_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "embed_width", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 6)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "embed_height", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 7)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 8)) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "author", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field15) < 0) { return -1;} + } + return 0; +} +int store_constructor_account_authorizations (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_account_no_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + return 0; +} +int store_constructor_account_password (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "current_salt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "has_recovery", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 25 && !cur_token_quoted && !memcmp (cur_token, "email_unconfirmed_pattern", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + return 0; +} +int store_constructor_account_password_input_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "new_password_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 1)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "email", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + } + return 0; +} +int store_constructor_account_password_settings (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_account_privacy_rules (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_account_sent_change_phone_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_auth_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user (field1) < 0) { return -1;} + return 0; +} +int store_constructor_auth_checked_phone (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field1) < 0) { return -1;} + return 0; +} +int store_constructor_auth_exported_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + return 0; +} +int store_constructor_auth_password_recovery (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_auth_sent_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field4) < 0) { return -1;} + return 0; +} +int store_constructor_auth_sent_app_code (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field4) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_encr_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return -1; } + expect_token ("[", 1); + int multiplicity1 = PTR2INT ( + INT2PTR (64) ); + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + while (multiplicity1 -- > 0) { + if (store_type_any (field1) < 0) { return -1;} + } + expect_token ("]", 1); + return 0; +} +int store_constructor_binlog_start (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int store_constructor_binlog_dc_option (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_dc_option_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_auth_key (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_binlog_encr_key (field2) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_default_dc (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_dc_signed (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_our_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_dh_params (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "root", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "prime", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_binlog_encr_key (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_pts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_qts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_date (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_seq (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_encr_chat_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_encr_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_binlog_encr_key (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "g_key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_binlog_encr_key (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "last_in_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field14) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 27)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field15 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field15) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_binlog_encr_key (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_user_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_user_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "user_photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user_profile_photo (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field13) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 26)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bot_info", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field14 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bot_info (field14) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_chat_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "user_num", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_photo (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "last_read_in", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 25)) { + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "last_read_out", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_chat_add_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_chat_del_participant (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_set_msg_id (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "old_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "new_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_message_delete (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_message_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 18)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field10) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field11 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_action (field11) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "reply_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field12 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field12) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 24)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field13 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_reply_markup (field13) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_message_encr_new (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + if (cur_token_len < 0) { return -1; } + if (!is_int ()) { return -1;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return -1;} + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 17)) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 19)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 20)) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 21)) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "encr_media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_decrypted_message_media (field8) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 22)) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "encr_action", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field9 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_decrypted_message_action (field9) < 0) { return -1;} + } + if (PTR2INT (var0) & (1 << 23)) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field10 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_encrypted_file (field10) < 0) { return -1;} + } + return 0; +} +int store_constructor_binlog_msg_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lid", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return -1;} + return 0; +} +int store_constructor_binlog_reset_authorization (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return -1; } + return 0; +} +int store_constructor_contacts_blocked (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_blocked_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_contacts_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + return 0; +} +int store_constructor_contacts_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_found (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_imported_contacts (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "imported", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "retry_contacts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_contact_link (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_contact_link (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user (field3) < 0) { return -1;} + return 0; +} +int store_constructor_contacts_suggested (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_geochats_located (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_geochats_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_geochats_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_geochats_stated_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_geo_chat_message (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + return 0; +} +int store_constructor_help_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "critical", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return -1;} + return 0; +} +int store_constructor_help_no_app_update (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; } + return 0; +} +int store_constructor_help_invite_text (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + return 0; +} +int store_constructor_help_support (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_user (field2) < 0) { return -1;} + return 0; +} +int store_constructor_messages_affected_history (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + return 0; +} +int store_constructor_messages_affected_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_messages_all_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + return 0; +} +int store_constructor_messages_all_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "sets", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_messages_chat_full (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "full_chat", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_chat_full (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_messages_chats (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return -1; } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + return 0; +} +int store_constructor_messages_dh_config_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return -1;} + return 0; +} +int store_constructor_messages_dh_config (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return -1;} + return 0; +} +int store_constructor_messages_dialogs (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_messages_dialogs_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field5) < 0) { return -1;} + return 0; +} +int store_constructor_messages_message_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return -1; } + return 0; +} +int store_constructor_messages_messages (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_messages_messages_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + return 0; +} +int store_constructor_messages_sent_encrypted_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + return 0; +} +int store_constructor_messages_sent_encrypted_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_encrypted_file (field2) < 0) { return -1;} + return 0; +} +int store_constructor_messages_sent_message (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_messages_sent_message_link (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_message_media (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "pts_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field6) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return -1;} + return 0; +} +int store_constructor_messages_sticker_set (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "set", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_sticker_set (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_messages_stickers_not_modified (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + return 0; +} +int store_constructor_messages_stickers (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "stickers", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_photos_photo (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_photo (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_photos_photos (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + return 0; +} +int store_constructor_photos_photos_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + return 0; +} +int store_constructor_storage_file_unknown (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_jpeg (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_gif (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_png (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_pdf (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_mp3 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_mov (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_partial (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_mp4 (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_storage_file_webp (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; } + return 0; +} +int store_constructor_updates_difference_empty (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + return 0; +} +int store_constructor_updates_difference (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int store_constructor_updates_difference_slice (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field5) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "intermediate_state", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_updates_state (field6) < 0) { return -1;} + return 0; +} +int store_constructor_updates_state (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return -1;} + return 0; +} +int store_constructor_upload_file (struct paramed_type *T) { + if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; } + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_storage_file_type (field1) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "mtime", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return -1;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return -1;} + return 0; +} +int store_type_account_days_t_t_l (struct paramed_type *T) { + out_int (0xb8d0afdf); + if (store_constructor_account_days_t_t_l (T) < 0) { return -1; } + return 0; +} +int store_type_bare_account_days_t_t_l (struct paramed_type *T) { + if (store_constructor_account_days_t_t_l (T) < 0) { return -1; } + return 0; +} +int store_type_audio (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) { + out_int (0x586988d8); + local_next_token (); + if (store_constructor_audio_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) { + out_int (0xc7ac6496); + local_next_token (); + if (store_constructor_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_audio (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_audio_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) { + local_next_token (); + if (store_constructor_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_authorization (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) { + out_int (0x7bf2e6f6); + local_next_token (); + if (store_constructor_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_authorization (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "authorization", cur_token_len)) { + local_next_token (); + if (store_constructor_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bool (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) { + out_int (0xbc799737); + local_next_token (); + if (store_constructor_bool_false (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) { + out_int (0x997275b5); + local_next_token (); + if (store_constructor_bool_true (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_bool (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) { + local_next_token (); + if (store_constructor_bool_false (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) { + local_next_token (); + if (store_constructor_bool_true (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bot_command (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) { + out_int (0xc27ac8c7); + local_next_token (); + if (store_constructor_bot_command (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) { + out_int (0xb79d22ab); + local_next_token (); + if (store_constructor_bot_command_old (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_bot_command (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "botCommand", cur_token_len)) { + local_next_token (); + if (store_constructor_bot_command (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "botCommandOld", cur_token_len)) { + local_next_token (); + if (store_constructor_bot_command_old (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bot_info (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) { + out_int (0xbb2e37ce); + local_next_token (); + if (store_constructor_bot_info_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) { + out_int (0x09cf585d); + local_next_token (); + if (store_constructor_bot_info (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_bot_info (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "botInfoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_bot_info_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "botInfo", cur_token_len)) { + local_next_token (); + if (store_constructor_bot_info (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bytes (struct paramed_type *T) { + out_int (0x0ee1379f); + if (store_constructor_bytes (T) < 0) { return -1; } + return 0; +} +int store_type_bare_bytes (struct paramed_type *T) { + if (store_constructor_bytes (T) < 0) { return -1; } + return 0; +} +int store_type_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) { + out_int (0x9ba2d800); + local_next_token (); + if (store_constructor_chat_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) { + out_int (0x6e9c9bc7); + local_next_token (); + if (store_constructor_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) { + out_int (0xfb0ccc41); + local_next_token (); + if (store_constructor_chat_forbidden (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) { + out_int (0x75eaea5a); + local_next_token (); + if (store_constructor_geo_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) { + local_next_token (); + if (store_constructor_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_forbidden (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) { + out_int (0x2e02a614); + local_next_token (); + if (store_constructor_chat_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_invite (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) { + out_int (0x5a686d7c); + local_next_token (); + if (store_constructor_chat_invite_already (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) { + out_int (0xce917dcd); + local_next_token (); + if (store_constructor_chat_invite (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_invite (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "chatInviteAlready", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_invite_already (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "chatInvite", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_invite (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_located (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) { + out_int (0x3631cf4c); + local_next_token (); + if (store_constructor_chat_located (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_located (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_located (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_participant (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) { + out_int (0xc8d7493e); + local_next_token (); + if (store_constructor_chat_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_participant (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_participants (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) { + out_int (0x0fd2bb8a); + local_next_token (); + if (store_constructor_chat_participants_forbidden (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) { + out_int (0x7841b415); + local_next_token (); + if (store_constructor_chat_participants (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_participants (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_participants_forbidden (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_participants (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_chat_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) { + out_int (0x37c1011c); + local_next_token (); + if (store_constructor_chat_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) { + out_int (0x6153276a); + local_next_token (); + if (store_constructor_chat_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_chat_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_client_d_h_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) { + out_int (0x6643b654); + local_next_token (); + if (store_constructor_client_d_h_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_client_d_h_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) { + local_next_token (); + if (store_constructor_client_d_h_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_config (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) { + out_int (0x4e32b894); + local_next_token (); + if (store_constructor_config (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_config (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) { + local_next_token (); + if (store_constructor_config (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) { + out_int (0xf911c994); + local_next_token (); + if (store_constructor_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) { + local_next_token (); + if (store_constructor_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contact_blocked (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) { + out_int (0x561bc879); + local_next_token (); + if (store_constructor_contact_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contact_blocked (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contact_found (struct paramed_type *T) { + out_int (0xea879f95); + if (store_constructor_contact_found (T) < 0) { return -1; } + return 0; +} +int store_type_bare_contact_found (struct paramed_type *T) { + if (store_constructor_contact_found (T) < 0) { return -1; } + return 0; +} +int store_type_contact_link (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) { + out_int (0x5f4f9247); + local_next_token (); + if (store_constructor_contact_link_unknown (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) { + out_int (0xfeedd3ad); + local_next_token (); + if (store_constructor_contact_link_none (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) { + out_int (0x268f3f59); + local_next_token (); + if (store_constructor_contact_link_has_phone (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) { + out_int (0xd502c2d0); + local_next_token (); + if (store_constructor_contact_link_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contact_link (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkUnknown", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_link_unknown (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contactLinkNone", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_link_none (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contactLinkHasPhone", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_link_has_phone (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "contactLinkContact", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_link_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contact_status (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) { + out_int (0xd3680c61); + local_next_token (); + if (store_constructor_contact_status (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contact_status (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_status (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contact_suggested (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) { + out_int (0x3de191a1); + local_next_token (); + if (store_constructor_contact_suggested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contact_suggested (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) { + local_next_token (); + if (store_constructor_contact_suggested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_dc_option (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) { + out_int (0x2ec2a43c); + local_next_token (); + if (store_constructor_dc_option_l28 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) { + out_int (0x05d8c6cc); + local_next_token (); + if (store_constructor_dc_option (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_dc_option (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "dcOptionL28", cur_token_len)) { + local_next_token (); + if (store_constructor_dc_option_l28 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) { + local_next_token (); + if (store_constructor_dc_option (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_decrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) { + out_int (0x204d3878); + local_next_token (); + if (store_constructor_decrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) { + out_int (0x73164160); + local_next_token (); + if (store_constructor_decrypted_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_decrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_decrypted_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) { + out_int (0xa1733aec); + local_next_token (); + if (store_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) { + out_int (0x0c4f40be); + local_next_token (); + if (store_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) { + out_int (0x65614304); + local_next_token (); + if (store_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) { + out_int (0x8ac1f475); + local_next_token (); + if (store_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) { + out_int (0x6719e45c); + local_next_token (); + if (store_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) { + out_int (0x511110b0); + local_next_token (); + if (store_constructor_decrypted_message_action_resend (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) { + out_int (0xf3048883); + local_next_token (); + if (store_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) { + out_int (0xccb27641); + local_next_token (); + if (store_constructor_decrypted_message_action_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) { + out_int (0xf3c9611b); + local_next_token (); + if (store_constructor_decrypted_message_action_request_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) { + out_int (0x6fe1735b); + local_next_token (); + if (store_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) { + out_int (0xdd05ec6b); + local_next_token (); + if (store_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) { + out_int (0xec2e0b9b); + local_next_token (); + if (store_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) { + out_int (0xa82fdd63); + local_next_token (); + if (store_constructor_decrypted_message_action_noop (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_decrypted_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_resend (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_request_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_action_noop (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_decrypted_message_layer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) { + out_int (0x1be31789); + local_next_token (); + if (store_constructor_decrypted_message_layer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_decrypted_message_layer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_layer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_decrypted_message_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) { + out_int (0x089f5c4a); + local_next_token (); + if (store_constructor_decrypted_message_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) { + out_int (0x32798a8c); + local_next_token (); + if (store_constructor_decrypted_message_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) { + out_int (0x35480a59); + local_next_token (); + if (store_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) { + out_int (0x588a0a97); + local_next_token (); + if (store_constructor_decrypted_message_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) { + out_int (0xb095434b); + local_next_token (); + if (store_constructor_decrypted_message_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) { + out_int (0x524a415d); + local_next_token (); + if (store_constructor_decrypted_message_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) { + out_int (0x57e0a9cb); + local_next_token (); + if (store_constructor_decrypted_message_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) { + out_int (0xfa95b0dd); + local_next_token (); + if (store_constructor_decrypted_message_media_external_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) { + out_int (0x4cee6ef3); + local_next_token (); + if (store_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) { + out_int (0x6080758f); + local_next_token (); + if (store_constructor_decrypted_message_media_audio_l12 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_decrypted_message_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 37 && !memcmp (cur_token, "decryptedMessageMediaExternalDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_external_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_video_l12 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) { + local_next_token (); + if (store_constructor_decrypted_message_media_audio_l12 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_dialog (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) { + out_int (0xc1dd804a); + local_next_token (); + if (store_constructor_dialog (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_dialog (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) { + local_next_token (); + if (store_constructor_dialog (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_disabled_feature (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) { + out_int (0xae636f24); + local_next_token (); + if (store_constructor_disabled_feature (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_disabled_feature (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "disabledFeature", cur_token_len)) { + local_next_token (); + if (store_constructor_disabled_feature (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_document (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) { + out_int (0x36f8c871); + local_next_token (); + if (store_constructor_document_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) { + out_int (0xf9a39f4f); + local_next_token (); + if (store_constructor_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) { + out_int (0x9efc6326); + local_next_token (); + if (store_constructor_document_l19 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_document (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_document_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) { + local_next_token (); + if (store_constructor_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) { + local_next_token (); + if (store_constructor_document_l19 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_document_attribute (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) { + out_int (0x6c37c15c); + local_next_token (); + if (store_constructor_document_attribute_image_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) { + out_int (0x11b58939); + local_next_token (); + if (store_constructor_document_attribute_animated (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) { + out_int (0x994c9882); + local_next_token (); + if (store_constructor_document_attribute_sticker_l28 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) { + out_int (0x3a556302); + local_next_token (); + if (store_constructor_document_attribute_sticker (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) { + out_int (0x5910cccb); + local_next_token (); + if (store_constructor_document_attribute_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) { + out_int (0x051448e5); + local_next_token (); + if (store_constructor_document_attribute_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) { + out_int (0x15590068); + local_next_token (); + if (store_constructor_document_attribute_filename (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_document_attribute (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_image_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_animated (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "documentAttributeStickerL28", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_sticker_l28 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_sticker (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) { + local_next_token (); + if (store_constructor_document_attribute_filename (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_double (struct paramed_type *T) { + out_int (0x2210c154); + if (store_constructor_double (T) < 0) { return -1; } + return 0; +} +int store_type_bare_double (struct paramed_type *T) { + if (store_constructor_double (T) < 0) { return -1; } + return 0; +} +int store_type_encrypted_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) { + out_int (0xab7ec0a0); + local_next_token (); + if (store_constructor_encrypted_chat_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) { + out_int (0x3bf703dc); + local_next_token (); + if (store_constructor_encrypted_chat_waiting (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) { + out_int (0xc878527e); + local_next_token (); + if (store_constructor_encrypted_chat_requested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) { + out_int (0xfa56ce36); + local_next_token (); + if (store_constructor_encrypted_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) { + out_int (0x13d6dd27); + local_next_token (); + if (store_constructor_encrypted_chat_discarded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_encrypted_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_chat_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_chat_waiting (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_chat_requested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_chat_discarded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_encrypted_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) { + out_int (0xc21f497e); + local_next_token (); + if (store_constructor_encrypted_file_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) { + out_int (0x4a70994c); + local_next_token (); + if (store_constructor_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_encrypted_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_file_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_encrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) { + out_int (0xed18c118); + local_next_token (); + if (store_constructor_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) { + out_int (0x23734b06); + local_next_token (); + if (store_constructor_encrypted_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_encrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) { + local_next_token (); + if (store_constructor_encrypted_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_error (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) { + out_int (0xc4b9f9bb); + local_next_token (); + if (store_constructor_error (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_error (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) { + local_next_token (); + if (store_constructor_error (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_exported_chat_invite (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) { + out_int (0x69df3769); + local_next_token (); + if (store_constructor_chat_invite_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) { + out_int (0xfc2e05bc); + local_next_token (); + if (store_constructor_chat_invite_exported (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_exported_chat_invite (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "chatInviteEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_invite_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "chatInviteExported", cur_token_len)) { + local_next_token (); + if (store_constructor_chat_invite_exported (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_file_location (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) { + out_int (0x7c596b46); + local_next_token (); + if (store_constructor_file_location_unavailable (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) { + out_int (0x53d69076); + local_next_token (); + if (store_constructor_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_file_location (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) { + local_next_token (); + if (store_constructor_file_location_unavailable (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_geo_chat_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) { + out_int (0x60311a9b); + local_next_token (); + if (store_constructor_geo_chat_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) { + out_int (0x4505f8e1); + local_next_token (); + if (store_constructor_geo_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) { + out_int (0xd34fa24e); + local_next_token (); + if (store_constructor_geo_chat_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_geo_chat_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_chat_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_chat_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_geo_point (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) { + out_int (0x1117dd5f); + local_next_token (); + if (store_constructor_geo_point_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) { + out_int (0x2049d70c); + local_next_token (); + if (store_constructor_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_geo_point (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_point_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) { + local_next_token (); + if (store_constructor_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_imported_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) { + out_int (0xd0028438); + local_next_token (); + if (store_constructor_imported_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_imported_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) { + local_next_token (); + if (store_constructor_imported_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_app_event (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) { + out_int (0x770656a8); + local_next_token (); + if (store_constructor_input_app_event (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_app_event (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) { + local_next_token (); + if (store_constructor_input_app_event (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_audio (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) { + out_int (0xd95adc84); + local_next_token (); + if (store_constructor_input_audio_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) { + out_int (0x77d440ff); + local_next_token (); + if (store_constructor_input_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_audio (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_audio_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_input_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_chat_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) { + out_int (0x1ca48f57); + local_next_token (); + if (store_constructor_input_chat_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) { + out_int (0x94254732); + local_next_token (); + if (store_constructor_input_chat_uploaded_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) { + out_int (0xb2e1bf08); + local_next_token (); + if (store_constructor_input_chat_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_chat_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_chat_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_chat_uploaded_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_chat_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) { + out_int (0xf392b7f4); + local_next_token (); + if (store_constructor_input_phone_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_contact (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) { + local_next_token (); + if (store_constructor_input_phone_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_document (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) { + out_int (0x72f0eaae); + local_next_token (); + if (store_constructor_input_document_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) { + out_int (0x18798952); + local_next_token (); + if (store_constructor_input_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_document (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_document_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_input_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_encrypted_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) { + out_int (0xf141b5e1); + local_next_token (); + if (store_constructor_input_encrypted_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_encrypted_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_encrypted_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) { + out_int (0x1837c364); + local_next_token (); + if (store_constructor_input_encrypted_file_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) { + out_int (0x64bd0306); + local_next_token (); + if (store_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) { + out_int (0x5a17b5e5); + local_next_token (); + if (store_constructor_input_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) { + out_int (0x2dc173c8); + local_next_token (); + if (store_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_encrypted_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_file_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) { + out_int (0xf52ff27f); + local_next_token (); + if (store_constructor_input_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) { + out_int (0xfa4f0bb5); + local_next_token (); + if (store_constructor_input_file_big (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) { + local_next_token (); + if (store_constructor_input_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) { + local_next_token (); + if (store_constructor_input_file_big (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_file_location (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) { + out_int (0x14637196); + local_next_token (); + if (store_constructor_input_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) { + out_int (0x3d0364ec); + local_next_token (); + if (store_constructor_input_video_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) { + out_int (0xf5235d55); + local_next_token (); + if (store_constructor_input_encrypted_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) { + out_int (0x74dc404d); + local_next_token (); + if (store_constructor_input_audio_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) { + out_int (0x4e45abe9); + local_next_token (); + if (store_constructor_input_document_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_file_location (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_input_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_input_video_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_input_encrypted_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_input_audio_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) { + local_next_token (); + if (store_constructor_input_document_file_location (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_geo_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) { + out_int (0x74d456fa); + local_next_token (); + if (store_constructor_input_geo_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_geo_chat (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) { + local_next_token (); + if (store_constructor_input_geo_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_geo_point (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) { + out_int (0xe4c123d6); + local_next_token (); + if (store_constructor_input_geo_point_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) { + out_int (0xf3b7acc9); + local_next_token (); + if (store_constructor_input_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_geo_point (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_geo_point_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) { + local_next_token (); + if (store_constructor_input_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) { + out_int (0x9664f57f); + local_next_token (); + if (store_constructor_input_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) { + out_int (0xf7aff1c0); + local_next_token (); + if (store_constructor_input_media_uploaded_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) { + out_int (0xe9bfb4f3); + local_next_token (); + if (store_constructor_input_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) { + out_int (0xf9c44144); + local_next_token (); + if (store_constructor_input_media_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) { + out_int (0xa6e45987); + local_next_token (); + if (store_constructor_input_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) { + out_int (0xe13fd4bc); + local_next_token (); + if (store_constructor_input_media_uploaded_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) { + out_int (0x96fb97dc); + local_next_token (); + if (store_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) { + out_int (0x936a4ebd); + local_next_token (); + if (store_constructor_input_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) { + out_int (0x4e498cab); + local_next_token (); + if (store_constructor_input_media_uploaded_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) { + out_int (0x89938781); + local_next_token (); + if (store_constructor_input_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) { + out_int (0xffe76b78); + local_next_token (); + if (store_constructor_input_media_uploaded_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) { + out_int (0x41481486); + local_next_token (); + if (store_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) { + out_int (0xd184e841); + local_next_token (); + if (store_constructor_input_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) { + out_int (0x2827a81a); + local_next_token (); + if (store_constructor_input_media_venue (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_geo_point (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVenue", cur_token_len)) { + local_next_token (); + if (store_constructor_input_media_venue (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_notify_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) { + out_int (0xb8bc5b0c); + local_next_token (); + if (store_constructor_input_notify_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) { + out_int (0x193b4417); + local_next_token (); + if (store_constructor_input_notify_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) { + out_int (0x4a95e84e); + local_next_token (); + if (store_constructor_input_notify_chats (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) { + out_int (0xa429b886); + local_next_token (); + if (store_constructor_input_notify_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) { + out_int (0x4d8ddec8); + local_next_token (); + if (store_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_notify_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) { + local_next_token (); + if (store_constructor_input_notify_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_input_notify_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) { + local_next_token (); + if (store_constructor_input_notify_chats (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) { + local_next_token (); + if (store_constructor_input_notify_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) { + local_next_token (); + if (store_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) { + out_int (0x7f3b18ea); + local_next_token (); + if (store_constructor_input_peer_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) { + out_int (0x7da07ec9); + local_next_token (); + if (store_constructor_input_peer_self (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) { + out_int (0x1023dbe8); + local_next_token (); + if (store_constructor_input_peer_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) { + out_int (0x9b447325); + local_next_token (); + if (store_constructor_input_peer_foreign (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) { + out_int (0x179be863); + local_next_token (); + if (store_constructor_input_peer_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_self (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_foreign (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_peer_notify_events (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) { + out_int (0xf03064d8); + local_next_token (); + if (store_constructor_input_peer_notify_events_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) { + out_int (0xe86a2c74); + local_next_token (); + if (store_constructor_input_peer_notify_events_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_peer_notify_events (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_notify_events_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_notify_events_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_peer_notify_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) { + out_int (0x46a2ce98); + local_next_token (); + if (store_constructor_input_peer_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_peer_notify_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) { + local_next_token (); + if (store_constructor_input_peer_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) { + out_int (0x1cd7bf0d); + local_next_token (); + if (store_constructor_input_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) { + out_int (0xfb95c6c4); + local_next_token (); + if (store_constructor_input_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_photo_crop (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) { + out_int (0xade6b004); + local_next_token (); + if (store_constructor_input_photo_crop_auto (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) { + out_int (0xd9915325); + local_next_token (); + if (store_constructor_input_photo_crop (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_photo_crop (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) { + local_next_token (); + if (store_constructor_input_photo_crop_auto (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) { + local_next_token (); + if (store_constructor_input_photo_crop (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_privacy_key (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) { + out_int (0x4f96cb18); + local_next_token (); + if (store_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_privacy_key (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_privacy_rule (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) { + out_int (0x0d09e07b); + local_next_token (); + if (store_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) { + out_int (0x184b35ce); + local_next_token (); + if (store_constructor_input_privacy_value_allow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) { + out_int (0x131cc67f); + local_next_token (); + if (store_constructor_input_privacy_value_allow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) { + out_int (0x0ba52007); + local_next_token (); + if (store_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) { + out_int (0xd66b66c9); + local_next_token (); + if (store_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) { + out_int (0x90110467); + local_next_token (); + if (store_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_privacy_rule (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_allow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_allow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) { + out_int (0xffb62b95); + local_next_token (); + if (store_constructor_input_sticker_set_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) { + out_int (0x9de7a269); + local_next_token (); + if (store_constructor_input_sticker_set_i_d (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) { + out_int (0x861cc8a0); + local_next_token (); + if (store_constructor_input_sticker_set_short_name (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "inputStickerSetEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_sticker_set_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "inputStickerSetID", cur_token_len)) { + local_next_token (); + if (store_constructor_input_sticker_set_i_d (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputStickerSetShortName", cur_token_len)) { + local_next_token (); + if (store_constructor_input_sticker_set_short_name (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_user (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) { + out_int (0xb98886cf); + local_next_token (); + if (store_constructor_input_user_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) { + out_int (0xf7c1b13f); + local_next_token (); + if (store_constructor_input_user_self (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) { + out_int (0x86e94f65); + local_next_token (); + if (store_constructor_input_user_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) { + out_int (0x655e74ff); + local_next_token (); + if (store_constructor_input_user_foreign (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_user (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_user_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) { + local_next_token (); + if (store_constructor_input_user_self (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) { + local_next_token (); + if (store_constructor_input_user_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) { + local_next_token (); + if (store_constructor_input_user_foreign (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_input_video (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) { + out_int (0x5508ec75); + local_next_token (); + if (store_constructor_input_video_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) { + out_int (0xee579652); + local_next_token (); + if (store_constructor_input_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_input_video (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_video_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_int (struct paramed_type *T) { + out_int (0xa8509bda); + if (store_constructor_int (T) < 0) { return -1; } + return 0; +} +int store_type_bare_int (struct paramed_type *T) { + if (store_constructor_int (T) < 0) { return -1; } + return 0; +} +int store_type_int128 (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) { + out_int (0x7d36c439); + local_next_token (); + if (store_constructor_int128 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_int128 (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) { + local_next_token (); + if (store_constructor_int128 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_int256 (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) { + out_int (0xf2c798b3); + local_next_token (); + if (store_constructor_int256 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_int256 (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) { + local_next_token (); + if (store_constructor_int256 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_keyboard_button (struct paramed_type *T) { + out_int (0xa2fa4880); + if (store_constructor_keyboard_button (T) < 0) { return -1; } + return 0; +} +int store_type_bare_keyboard_button (struct paramed_type *T) { + if (store_constructor_keyboard_button (T) < 0) { return -1; } + return 0; +} +int store_type_keyboard_button_row (struct paramed_type *T) { + out_int (0x77608b83); + if (store_constructor_keyboard_button_row (T) < 0) { return -1; } + return 0; +} +int store_type_bare_keyboard_button_row (struct paramed_type *T) { + if (store_constructor_keyboard_button_row (T) < 0) { return -1; } + return 0; +} +int store_type_long (struct paramed_type *T) { + out_int (0x22076cba); + if (store_constructor_long (T) < 0) { return -1; } + return 0; +} +int store_type_bare_long (struct paramed_type *T) { + if (store_constructor_long (T) < 0) { return -1; } + return 0; +} +int store_type_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) { + out_int (0x83e5de54); + local_next_token (); + if (store_constructor_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + out_int (0xc3060325); + local_next_token (); + if (store_constructor_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) { + out_int (0x1d86f70e); + local_next_token (); + if (store_constructor_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + if (store_constructor_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) { + local_next_token (); + if (store_constructor_message_service (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) { + out_int (0xb6aef7b0); + local_next_token (); + if (store_constructor_message_action_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) { + out_int (0xa6638b9a); + local_next_token (); + if (store_constructor_message_action_chat_create (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) { + out_int (0xb5a1ce5a); + local_next_token (); + if (store_constructor_message_action_chat_edit_title (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) { + out_int (0x7fcb13a8); + local_next_token (); + if (store_constructor_message_action_chat_edit_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) { + out_int (0x95e3fbef); + local_next_token (); + if (store_constructor_message_action_chat_delete_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) { + out_int (0x5e3cfc4b); + local_next_token (); + if (store_constructor_message_action_chat_add_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) { + out_int (0xb2ae9b0c); + local_next_token (); + if (store_constructor_message_action_chat_delete_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) { + out_int (0x6f038ebc); + local_next_token (); + if (store_constructor_message_action_geo_chat_create (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) { + out_int (0x0c7d53de); + local_next_token (); + if (store_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) { + out_int (0xf89cf5e8); + local_next_token (); + if (store_constructor_message_action_chat_joined_by_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_create (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_edit_title (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_edit_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_delete_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_add_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_delete_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_geo_chat_create (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messageActionChatJoinedByLink", cur_token_len)) { + local_next_token (); + if (store_constructor_message_action_chat_joined_by_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_message_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) { + out_int (0x3ded6320); + local_next_token (); + if (store_constructor_message_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) { + out_int (0x3d8ce53d); + local_next_token (); + if (store_constructor_message_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) { + out_int (0x5bcf1675); + local_next_token (); + if (store_constructor_message_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) { + out_int (0x56e0d474); + local_next_token (); + if (store_constructor_message_media_geo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) { + out_int (0x5e7d2f39); + local_next_token (); + if (store_constructor_message_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) { + out_int (0x9f84f49e); + local_next_token (); + if (store_constructor_message_media_unsupported (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) { + out_int (0x2fda2204); + local_next_token (); + if (store_constructor_message_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) { + out_int (0xc6b68300); + local_next_token (); + if (store_constructor_message_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) { + out_int (0xa32dd600); + local_next_token (); + if (store_constructor_message_media_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) { + out_int (0x7912b71f); + local_next_token (); + if (store_constructor_message_media_venue (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) { + out_int (0xc8c45a2a); + local_next_token (); + if (store_constructor_message_media_photo_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) { + out_int (0xa2d24290); + local_next_token (); + if (store_constructor_message_media_video_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_message_media (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_geo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_contact (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_unsupported (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaWebPage", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVenue", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_venue (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaPhotoL27", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_photo_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaVideoL27", cur_token_len)) { + local_next_token (); + if (store_constructor_message_media_video_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_filter (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) { + out_int (0x57e2f66c); + local_next_token (); + if (store_constructor_input_messages_filter_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) { + out_int (0x9609a51c); + local_next_token (); + if (store_constructor_input_messages_filter_photos (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) { + out_int (0x9fc00e65); + local_next_token (); + if (store_constructor_input_messages_filter_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) { + out_int (0x56e9f0e4); + local_next_token (); + if (store_constructor_input_messages_filter_photo_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) { + out_int (0xd95e73bb); + local_next_token (); + if (store_constructor_input_messages_filter_photo_video_documents (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) { + out_int (0x9eddf188); + local_next_token (); + if (store_constructor_input_messages_filter_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) { + out_int (0xcfc87522); + local_next_token (); + if (store_constructor_input_messages_filter_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_filter (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_photos (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_photo_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 38 && !memcmp (cur_token, "inputMessagesFilterPhotoVideoDocuments", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_photo_video_documents (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_document (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) { + local_next_token (); + if (store_constructor_input_messages_filter_audio (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_nearest_dc (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) { + out_int (0x8e1a1775); + local_next_token (); + if (store_constructor_nearest_dc (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_nearest_dc (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) { + local_next_token (); + if (store_constructor_nearest_dc (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_notify_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) { + out_int (0x9fd40bd8); + local_next_token (); + if (store_constructor_notify_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) { + out_int (0xb4c83b4c); + local_next_token (); + if (store_constructor_notify_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) { + out_int (0xc007cec3); + local_next_token (); + if (store_constructor_notify_chats (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) { + out_int (0x74d07c60); + local_next_token (); + if (store_constructor_notify_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_notify_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) { + local_next_token (); + if (store_constructor_notify_peer (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_notify_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) { + local_next_token (); + if (store_constructor_notify_chats (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) { + local_next_token (); + if (store_constructor_notify_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_null (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) { + out_int (0x56730bcc); + local_next_token (); + if (store_constructor_null (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_null (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) { + local_next_token (); + if (store_constructor_null (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_p_q_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) { + out_int (0x83c95aec); + local_next_token (); + if (store_constructor_p_q_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) { + out_int (0x3c6a84d4); + local_next_token (); + if (store_constructor_p_q_inner_data_temp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_p_q_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) { + local_next_token (); + if (store_constructor_p_q_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) { + local_next_token (); + if (store_constructor_p_q_inner_data_temp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) { + out_int (0x9db1bc6d); + local_next_token (); + if (store_constructor_peer_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) { + out_int (0xbad0e5bb); + local_next_token (); + if (store_constructor_peer_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_peer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_chat (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_peer_notify_events (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) { + out_int (0xadd53cb3); + local_next_token (); + if (store_constructor_peer_notify_events_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) { + out_int (0x6d1ded88); + local_next_token (); + if (store_constructor_peer_notify_events_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_peer_notify_events (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_notify_events_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_notify_events_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_peer_notify_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) { + out_int (0x70a68512); + local_next_token (); + if (store_constructor_peer_notify_settings_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) { + out_int (0x8d5e11ee); + local_next_token (); + if (store_constructor_peer_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_peer_notify_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_notify_settings_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) { + local_next_token (); + if (store_constructor_peer_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) { + out_int (0x2331b22d); + local_next_token (); + if (store_constructor_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + out_int (0xc3838076); + local_next_token (); + if (store_constructor_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) { + out_int (0x22b56751); + local_next_token (); + if (store_constructor_photo_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + if (store_constructor_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "photoL27", cur_token_len)) { + local_next_token (); + if (store_constructor_photo_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_photo_size (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) { + out_int (0x0e17e23c); + local_next_token (); + if (store_constructor_photo_size_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) { + out_int (0x77bfb61b); + local_next_token (); + if (store_constructor_photo_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) { + out_int (0xe9a734fa); + local_next_token (); + if (store_constructor_photo_cached_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_photo_size (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_photo_size_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) { + local_next_token (); + if (store_constructor_photo_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) { + local_next_token (); + if (store_constructor_photo_cached_size (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_privacy_key (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) { + out_int (0xbc2eab30); + local_next_token (); + if (store_constructor_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_privacy_key (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_key_status_timestamp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_privacy_rule (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) { + out_int (0xfffe1bac); + local_next_token (); + if (store_constructor_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) { + out_int (0x65427b82); + local_next_token (); + if (store_constructor_privacy_value_allow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) { + out_int (0x4d5bbe0c); + local_next_token (); + if (store_constructor_privacy_value_allow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) { + out_int (0xf888fa1a); + local_next_token (); + if (store_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) { + out_int (0x8b73e763); + local_next_token (); + if (store_constructor_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) { + out_int (0x0c7f49b7); + local_next_token (); + if (store_constructor_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_privacy_rule (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_allow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_allow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_allow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_disallow_all (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) { + local_next_token (); + if (store_constructor_privacy_value_disallow_users (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_received_notify_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) { + out_int (0xa384b779); + local_next_token (); + if (store_constructor_received_notify_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_received_notify_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "receivedNotifyMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_received_notify_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_reply_markup (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) { + out_int (0xa03e5b85); + local_next_token (); + if (store_constructor_reply_keyboard_hide (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) { + out_int (0xf4108aa0); + local_next_token (); + if (store_constructor_reply_keyboard_force_reply (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) { + out_int (0x3502758c); + local_next_token (); + if (store_constructor_reply_keyboard_markup (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_reply_markup (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "replyKeyboardHide", cur_token_len)) { + local_next_token (); + if (store_constructor_reply_keyboard_hide (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "replyKeyboardForceReply", cur_token_len)) { + local_next_token (); + if (store_constructor_reply_keyboard_force_reply (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "replyKeyboardMarkup", cur_token_len)) { + local_next_token (); + if (store_constructor_reply_keyboard_markup (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_res_p_q (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) { + out_int (0x05162463); + local_next_token (); + if (store_constructor_res_p_q (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_res_p_q (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) { + local_next_token (); + if (store_constructor_res_p_q (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_send_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) { + out_int (0x16bf744e); + local_next_token (); + if (store_constructor_send_message_typing_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) { + out_int (0xfd5ec8f5); + local_next_token (); + if (store_constructor_send_message_cancel_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) { + out_int (0xa187d66f); + local_next_token (); + if (store_constructor_send_message_record_video_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) { + out_int (0x92042ff7); + local_next_token (); + if (store_constructor_send_message_upload_video_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) { + out_int (0xe9763aec); + local_next_token (); + if (store_constructor_send_message_upload_video_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) { + out_int (0xd52f73f7); + local_next_token (); + if (store_constructor_send_message_record_audio_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) { + out_int (0xe6ac8a6f); + local_next_token (); + if (store_constructor_send_message_upload_audio_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) { + out_int (0xf351d7ab); + local_next_token (); + if (store_constructor_send_message_upload_audio_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) { + out_int (0xd1d34a26); + local_next_token (); + if (store_constructor_send_message_upload_photo_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) { + out_int (0x8faee98e); + local_next_token (); + if (store_constructor_send_message_upload_document_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) { + out_int (0xaa0cd9e4); + local_next_token (); + if (store_constructor_send_message_upload_document_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) { + out_int (0x176f8ba1); + local_next_token (); + if (store_constructor_send_message_geo_location_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) { + out_int (0x628cbc6f); + local_next_token (); + if (store_constructor_send_message_choose_contact_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_send_message_action (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_typing_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_cancel_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_record_video_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadVideoActionL27", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_video_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_video_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_record_audio_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadAudioActionL27", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_audio_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_audio_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_photo_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 34 && !memcmp (cur_token, "sendMessageUploadDocumentActionL27", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_document_action_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_upload_document_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_geo_location_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) { + local_next_token (); + if (store_constructor_send_message_choose_contact_action (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_server_d_h_params (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) { + out_int (0x79cb045d); + local_next_token (); + if (store_constructor_server_d_h_params_fail (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) { + out_int (0xd0e8075c); + local_next_token (); + if (store_constructor_server_d_h_params_ok (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_server_d_h_params (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) { + local_next_token (); + if (store_constructor_server_d_h_params_fail (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) { + local_next_token (); + if (store_constructor_server_d_h_params_ok (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_server_d_h_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) { + out_int (0xb5890dba); + local_next_token (); + if (store_constructor_server_d_h_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_server_d_h_inner_data (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) { + local_next_token (); + if (store_constructor_server_d_h_inner_data (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_set_client_d_h_params_answer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) { + out_int (0x3bcbf734); + local_next_token (); + if (store_constructor_dh_gen_ok (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) { + out_int (0x46dc1fb9); + local_next_token (); + if (store_constructor_dh_gen_retry (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) { + out_int (0xa69dae02); + local_next_token (); + if (store_constructor_dh_gen_fail (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_set_client_d_h_params_answer (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) { + local_next_token (); + if (store_constructor_dh_gen_ok (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) { + local_next_token (); + if (store_constructor_dh_gen_retry (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) { + local_next_token (); + if (store_constructor_dh_gen_fail (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_sticker_pack (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) { + out_int (0x12b299d4); + local_next_token (); + if (store_constructor_sticker_pack (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_sticker_pack (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) { + local_next_token (); + if (store_constructor_sticker_pack (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) { + out_int (0xa7a43b17); + local_next_token (); + if (store_constructor_sticker_set (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "stickerSet", cur_token_len)) { + local_next_token (); + if (store_constructor_sticker_set (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_string (struct paramed_type *T) { + out_int (0xb5286e24); + if (store_constructor_string (T) < 0) { return -1; } + return 0; +} +int store_type_bare_string (struct paramed_type *T) { + if (store_constructor_string (T) < 0) { return -1; } + return 0; +} +int store_type_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) { + out_int (0x1f2b0afd); + local_next_token (); + if (store_constructor_update_new_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) { + out_int (0x4e90bfd6); + local_next_token (); + if (store_constructor_update_message_i_d (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) { + out_int (0xa20db0e5); + local_next_token (); + if (store_constructor_update_delete_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) { + out_int (0x5c486927); + local_next_token (); + if (store_constructor_update_user_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) { + out_int (0x9a65ea1f); + local_next_token (); + if (store_constructor_update_chat_user_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) { + out_int (0x07761198); + local_next_token (); + if (store_constructor_update_chat_participants (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) { + out_int (0x1bfbd823); + local_next_token (); + if (store_constructor_update_user_status (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) { + out_int (0xa7332b73); + local_next_token (); + if (store_constructor_update_user_name (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) { + out_int (0x95313b0c); + local_next_token (); + if (store_constructor_update_user_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) { + out_int (0x2575bbb9); + local_next_token (); + if (store_constructor_update_contact_registered (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) { + out_int (0x9d2e67c5); + local_next_token (); + if (store_constructor_update_contact_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) { + out_int (0x8f06529a); + local_next_token (); + if (store_constructor_update_new_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) { + out_int (0x5a68e3f7); + local_next_token (); + if (store_constructor_update_new_geo_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) { + out_int (0x12bcbd9a); + local_next_token (); + if (store_constructor_update_new_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) { + out_int (0x1710f156); + local_next_token (); + if (store_constructor_update_encrypted_chat_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) { + out_int (0xb4a2e88d); + local_next_token (); + if (store_constructor_update_encryption (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) { + out_int (0x38fe25b7); + local_next_token (); + if (store_constructor_update_encrypted_messages_read (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) { + out_int (0x3a0eeb22); + local_next_token (); + if (store_constructor_update_chat_participant_add (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) { + out_int (0x6e5f8c22); + local_next_token (); + if (store_constructor_update_chat_participant_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) { + out_int (0x8e5e9873); + local_next_token (); + if (store_constructor_update_dc_options (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) { + out_int (0x80ece81a); + local_next_token (); + if (store_constructor_update_user_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) { + out_int (0xbec268ef); + local_next_token (); + if (store_constructor_update_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) { + out_int (0x382dd3e4); + local_next_token (); + if (store_constructor_update_service_notification (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) { + out_int (0xee3b272a); + local_next_token (); + if (store_constructor_update_privacy (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) { + out_int (0x12b9417b); + local_next_token (); + if (store_constructor_update_user_phone (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) { + out_int (0x9961fd5c); + local_next_token (); + if (store_constructor_update_read_history_inbox (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) { + out_int (0x2f2f21bf); + local_next_token (); + if (store_constructor_update_read_history_outbox (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) { + out_int (0x2cc36971); + local_next_token (); + if (store_constructor_update_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) { + out_int (0x68c13933); + local_next_token (); + if (store_constructor_update_read_messages_contents (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) { + out_int (0x03114739); + local_next_token (); + if (store_constructor_update_msg_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_new_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) { + local_next_token (); + if (store_constructor_update_message_i_d (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) { + local_next_token (); + if (store_constructor_update_delete_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) { + local_next_token (); + if (store_constructor_update_chat_user_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) { + local_next_token (); + if (store_constructor_update_chat_participants (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_status (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_name (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) { + local_next_token (); + if (store_constructor_update_contact_registered (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) { + local_next_token (); + if (store_constructor_update_contact_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) { + local_next_token (); + if (store_constructor_update_new_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_new_geo_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_new_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) { + local_next_token (); + if (store_constructor_update_encrypted_chat_typing (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) { + local_next_token (); + if (store_constructor_update_encryption (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) { + local_next_token (); + if (store_constructor_update_encrypted_messages_read (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) { + local_next_token (); + if (store_constructor_update_chat_participant_add (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) { + local_next_token (); + if (store_constructor_update_chat_participant_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) { + local_next_token (); + if (store_constructor_update_dc_options (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) { + local_next_token (); + if (store_constructor_update_notify_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) { + local_next_token (); + if (store_constructor_update_service_notification (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) { + local_next_token (); + if (store_constructor_update_privacy (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) { + local_next_token (); + if (store_constructor_update_user_phone (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateReadHistoryInbox", cur_token_len)) { + local_next_token (); + if (store_constructor_update_read_history_inbox (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updateReadHistoryOutbox", cur_token_len)) { + local_next_token (); + if (store_constructor_update_read_history_outbox (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "updateWebPage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "updateReadMessagesContents", cur_token_len)) { + local_next_token (); + if (store_constructor_update_read_messages_contents (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updateMsgUpdate", cur_token_len)) { + local_next_token (); + if (store_constructor_update_msg_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_updates (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) { + out_int (0xe317af7e); + local_next_token (); + if (store_constructor_updates_too_long (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) { + out_int (0xed5c2127); + local_next_token (); + if (store_constructor_update_short_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) { + out_int (0x52238b3c); + local_next_token (); + if (store_constructor_update_short_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) { + out_int (0x78d4dec1); + local_next_token (); + if (store_constructor_update_short (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) { + out_int (0x725b04c3); + local_next_token (); + if (store_constructor_updates_combined (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + out_int (0x74ae4240); + local_next_token (); + if (store_constructor_updates (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_updates (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_too_long (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_short_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_update_short_chat_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) { + local_next_token (); + if (store_constructor_update_short (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_combined (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) { + local_next_token (); + if (store_constructor_updates (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_user (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) { + out_int (0x200250ba); + local_next_token (); + if (store_constructor_user_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + out_int (0x22e49072); + local_next_token (); + if (store_constructor_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_user (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_user_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) { + local_next_token (); + if (store_constructor_user (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_user_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) { + out_int (0x5a89ac5b); + local_next_token (); + if (store_constructor_user_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_user_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) { + local_next_token (); + if (store_constructor_user_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_user_profile_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) { + out_int (0x4f11bae1); + local_next_token (); + if (store_constructor_user_profile_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) { + out_int (0xd559d8c8); + local_next_token (); + if (store_constructor_user_profile_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_user_profile_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_user_profile_photo_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) { + local_next_token (); + if (store_constructor_user_profile_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_user_status (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) { + out_int (0x09d05049); + local_next_token (); + if (store_constructor_user_status_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) { + out_int (0xedb93949); + local_next_token (); + if (store_constructor_user_status_online (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) { + out_int (0x008c703f); + local_next_token (); + if (store_constructor_user_status_offline (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) { + out_int (0xe26f42f1); + local_next_token (); + if (store_constructor_user_status_recently (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) { + out_int (0x07bf09fc); + local_next_token (); + if (store_constructor_user_status_last_week (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) { + out_int (0x77ebc742); + local_next_token (); + if (store_constructor_user_status_last_month (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_user_status (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_online (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_offline (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_recently (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_last_week (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) { + local_next_token (); + if (store_constructor_user_status_last_month (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_vector (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) { + out_int (0x1cb5c415); + local_next_token (); + if (store_constructor_vector (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_vector (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) { + local_next_token (); + if (store_constructor_vector (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_video (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) { + out_int (0xc10658a8); + local_next_token (); + if (store_constructor_video_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + out_int (0xee9f4a4d); + local_next_token (); + if (store_constructor_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) { + out_int (0x388fa391); + local_next_token (); + if (store_constructor_video_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_video (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_video_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) { + local_next_token (); + if (store_constructor_video (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 8 && !memcmp (cur_token, "videoL27", cur_token_len)) { + local_next_token (); + if (store_constructor_video_l27 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_wall_paper (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) { + out_int (0xccb03657); + local_next_token (); + if (store_constructor_wall_paper (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) { + out_int (0x63117f24); + local_next_token (); + if (store_constructor_wall_paper_solid (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_wall_paper (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) { + local_next_token (); + if (store_constructor_wall_paper (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) { + local_next_token (); + if (store_constructor_wall_paper_solid (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_web_page (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) { + out_int (0xeb1477e8); + local_next_token (); + if (store_constructor_web_page_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) { + out_int (0xc586da1c); + local_next_token (); + if (store_constructor_web_page_pending (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) { + out_int (0xa31ea0b5); + local_next_token (); + if (store_constructor_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_web_page (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "webPageEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_web_page_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "webPagePending", cur_token_len)) { + local_next_token (); + if (store_constructor_web_page_pending (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 7 && !memcmp (cur_token, "webPage", cur_token_len)) { + local_next_token (); + if (store_constructor_web_page (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_account_authorizations (struct paramed_type *T) { + out_int (0x1250abde); + if (store_constructor_account_authorizations (T) < 0) { return -1; } + return 0; +} +int store_type_bare_account_authorizations (struct paramed_type *T) { + if (store_constructor_account_authorizations (T) < 0) { return -1; } + return 0; +} +int store_type_account_password (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) { + out_int (0x96dabc18); + local_next_token (); + if (store_constructor_account_no_password (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) { + out_int (0x7c18141c); + local_next_token (); + if (store_constructor_account_password (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_account_password (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) { + local_next_token (); + if (store_constructor_account_no_password (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) { + local_next_token (); + if (store_constructor_account_password (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_account_password_input_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) { + out_int (0xbcfc532c); + local_next_token (); + if (store_constructor_account_password_input_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_account_password_input_settings (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "account.passwordInputSettings", cur_token_len)) { + local_next_token (); + if (store_constructor_account_password_input_settings (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_account_password_settings (struct paramed_type *T) { + out_int (0xb7b72ab3); + if (store_constructor_account_password_settings (T) < 0) { return -1; } + return 0; +} +int store_type_bare_account_password_settings (struct paramed_type *T) { + if (store_constructor_account_password_settings (T) < 0) { return -1; } + return 0; +} +int store_type_account_privacy_rules (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) { + out_int (0x554abb6f); + local_next_token (); + if (store_constructor_account_privacy_rules (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_account_privacy_rules (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) { + local_next_token (); + if (store_constructor_account_privacy_rules (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_account_sent_change_phone_code (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) { + out_int (0xa4f58c4c); + local_next_token (); + if (store_constructor_account_sent_change_phone_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_account_sent_change_phone_code (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) { + local_next_token (); + if (store_constructor_account_sent_change_phone_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_auth_authorization (struct paramed_type *T) { + out_int (0xff036af1); + if (store_constructor_auth_authorization (T) < 0) { return -1; } + return 0; +} +int store_type_bare_auth_authorization (struct paramed_type *T) { + if (store_constructor_auth_authorization (T) < 0) { return -1; } + return 0; +} +int store_type_auth_checked_phone (struct paramed_type *T) { + out_int (0x811ea28e); + if (store_constructor_auth_checked_phone (T) < 0) { return -1; } + return 0; +} +int store_type_bare_auth_checked_phone (struct paramed_type *T) { + if (store_constructor_auth_checked_phone (T) < 0) { return -1; } + return 0; +} +int store_type_auth_exported_authorization (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) { + out_int (0xdf969c2d); + local_next_token (); + if (store_constructor_auth_exported_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_auth_exported_authorization (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) { + local_next_token (); + if (store_constructor_auth_exported_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_auth_password_recovery (struct paramed_type *T) { + out_int (0x137948a5); + if (store_constructor_auth_password_recovery (T) < 0) { return -1; } + return 0; +} +int store_type_bare_auth_password_recovery (struct paramed_type *T) { + if (store_constructor_auth_password_recovery (T) < 0) { return -1; } + return 0; +} +int store_type_auth_sent_code (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) { + out_int (0xefed51d9); + local_next_token (); + if (store_constructor_auth_sent_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) { + out_int (0xe325edcf); + local_next_token (); + if (store_constructor_auth_sent_app_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_auth_sent_code (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) { + local_next_token (); + if (store_constructor_auth_sent_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) { + local_next_token (); + if (store_constructor_auth_sent_app_code (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_binlog_encr_key (struct paramed_type *T) { + out_int (0x0377168f); + if (store_constructor_binlog_encr_key (T) < 0) { return -1; } + return 0; +} +int store_type_bare_binlog_encr_key (struct paramed_type *T) { + if (store_constructor_binlog_encr_key (T) < 0) { return -1; } + return 0; +} +int store_type_binlog_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) { + out_int (0x3b06de69); + local_next_token (); + if (store_constructor_binlog_start (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) { + out_int (0xf96feb32); + local_next_token (); + if (store_constructor_binlog_dc_option (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) { + out_int (0x7c0d22d8); + local_next_token (); + if (store_constructor_binlog_dc_option_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) { + out_int (0x71e8c156); + local_next_token (); + if (store_constructor_binlog_auth_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) { + out_int (0x9e83dbdc); + local_next_token (); + if (store_constructor_binlog_default_dc (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) { + out_int (0x26451bb5); + local_next_token (); + if (store_constructor_binlog_dc_signed (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) { + out_int (0x68a870e8); + local_next_token (); + if (store_constructor_binlog_our_id (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) { + out_int (0xeaeb7826); + local_next_token (); + if (store_constructor_binlog_set_dh_params (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) { + out_int (0x2ca8c939); + local_next_token (); + if (store_constructor_binlog_set_pts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) { + out_int (0xd95738ac); + local_next_token (); + if (store_constructor_binlog_set_qts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) { + out_int (0x1d0f4b52); + local_next_token (); + if (store_constructor_binlog_set_date (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) { + out_int (0x6eeb2989); + local_next_token (); + if (store_constructor_binlog_set_seq (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) { + out_int (0xee1b38e8); + local_next_token (); + if (store_constructor_binlog_encr_chat_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) { + out_int (0x84977251); + local_next_token (); + if (store_constructor_binlog_encr_chat_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) { + out_int (0x9d49488d); + local_next_token (); + if (store_constructor_binlog_encr_chat_exchange_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) { + out_int (0xac55d447); + local_next_token (); + if (store_constructor_binlog_user_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) { + out_int (0x127cf2f9); + local_next_token (); + if (store_constructor_binlog_user_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) { + out_int (0x0a10aa92); + local_next_token (); + if (store_constructor_binlog_chat_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) { + out_int (0x535475ea); + local_next_token (); + if (store_constructor_binlog_chat_add_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) { + out_int (0x7dd1a1a2); + local_next_token (); + if (store_constructor_binlog_chat_del_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) { + out_int (0x3c873416); + local_next_token (); + if (store_constructor_binlog_set_msg_id (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) { + out_int (0x847e77b1); + local_next_token (); + if (store_constructor_binlog_message_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) { + out_int (0x427cfcdb); + local_next_token (); + if (store_constructor_binlog_message_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) { + out_int (0x6cf7cabc); + local_next_token (); + if (store_constructor_binlog_message_encr_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) { + out_int (0x6dd4d85f); + local_next_token (); + if (store_constructor_binlog_msg_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) { + out_int (0x83327955); + local_next_token (); + if (store_constructor_binlog_reset_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_binlog_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_start (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_dc_option (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.dcOptionNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_dc_option_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_auth_key (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_default_dc (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_dc_signed (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_our_id (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_dh_params (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_pts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_qts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_date (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_seq (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_encr_chat_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "binlog.encrChatNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_encr_chat_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "binlog.encrChatExchangeNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_encr_chat_exchange_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_user_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_user_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 14 && !memcmp (cur_token, "binlog.chatNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_chat_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_chat_add_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_chat_del_participant (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_set_msg_id (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "binlog.messageDelete", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_message_delete (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "binlog.messageNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_message_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "binlog.messageEncrNew", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_message_encr_new (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_msg_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) { + local_next_token (); + if (store_constructor_binlog_reset_authorization (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_blocked (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) { + out_int (0x1c138d15); + local_next_token (); + if (store_constructor_contacts_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) { + out_int (0x900802a1); + local_next_token (); + if (store_constructor_contacts_blocked_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_blocked (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_blocked (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_blocked_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_contacts (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) { + out_int (0xb74ba9d2); + local_next_token (); + if (store_constructor_contacts_contacts_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) { + out_int (0x6f8b8cb2); + local_next_token (); + if (store_constructor_contacts_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_contacts (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_contacts_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_found (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) { + out_int (0x0566000e); + local_next_token (); + if (store_constructor_contacts_found (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_found (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_found (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_imported_contacts (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) { + out_int (0xad524315); + local_next_token (); + if (store_constructor_contacts_imported_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_imported_contacts (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_imported_contacts (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_link (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) { + out_int (0x3ace484c); + local_next_token (); + if (store_constructor_contacts_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_link (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_contacts_suggested (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) { + out_int (0x5649dcc5); + local_next_token (); + if (store_constructor_contacts_suggested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_contacts_suggested (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) { + local_next_token (); + if (store_constructor_contacts_suggested (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_geochats_located (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) { + out_int (0x48feb267); + local_next_token (); + if (store_constructor_geochats_located (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_geochats_located (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) { + local_next_token (); + if (store_constructor_geochats_located (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_geochats_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) { + out_int (0xd1526db1); + local_next_token (); + if (store_constructor_geochats_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) { + out_int (0xbc5863e8); + local_next_token (); + if (store_constructor_geochats_messages_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_geochats_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) { + local_next_token (); + if (store_constructor_geochats_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_geochats_messages_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_geochats_stated_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) { + out_int (0x17b1578b); + local_next_token (); + if (store_constructor_geochats_stated_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_geochats_stated_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_geochats_stated_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_help_app_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) { + out_int (0x8987f311); + local_next_token (); + if (store_constructor_help_app_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) { + out_int (0xc45a6536); + local_next_token (); + if (store_constructor_help_no_app_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_help_app_update (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) { + local_next_token (); + if (store_constructor_help_app_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) { + local_next_token (); + if (store_constructor_help_no_app_update (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_help_invite_text (struct paramed_type *T) { + out_int (0x18cb9f78); + if (store_constructor_help_invite_text (T) < 0) { return -1; } + return 0; +} +int store_type_bare_help_invite_text (struct paramed_type *T) { + if (store_constructor_help_invite_text (T) < 0) { return -1; } + return 0; +} +int store_type_help_support (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) { + out_int (0x17c6b5f6); + local_next_token (); + if (store_constructor_help_support (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_help_support (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) { + local_next_token (); + if (store_constructor_help_support (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_affected_history (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) { + out_int (0xb45c69d1); + local_next_token (); + if (store_constructor_messages_affected_history (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_affected_history (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_affected_history (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_affected_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) { + out_int (0x84d19185); + local_next_token (); + if (store_constructor_messages_affected_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_affected_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.affectedMessages", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_affected_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_all_stickers (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) { + out_int (0xe86602c3); + local_next_token (); + if (store_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) { + out_int (0x5ce352ec); + local_next_token (); + if (store_constructor_messages_all_stickers (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_all_stickers (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_all_stickers (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_chat_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) { + out_int (0xe5d7d19c); + local_next_token (); + if (store_constructor_messages_chat_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_chat_full (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_chat_full (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_chats (struct paramed_type *T) { + out_int (0x64ff9fd5); + if (store_constructor_messages_chats (T) < 0) { return -1; } + return 0; +} +int store_type_bare_messages_chats (struct paramed_type *T) { + if (store_constructor_messages_chats (T) < 0) { return -1; } + return 0; +} +int store_type_messages_dh_config (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) { + out_int (0xc0e24635); + local_next_token (); + if (store_constructor_messages_dh_config_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) { + out_int (0x2c221edd); + local_next_token (); + if (store_constructor_messages_dh_config (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_dh_config (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_dh_config_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_dh_config (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_dialogs (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) { + out_int (0x15ba6c40); + local_next_token (); + if (store_constructor_messages_dialogs (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) { + out_int (0x71e094f3); + local_next_token (); + if (store_constructor_messages_dialogs_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_dialogs (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_dialogs (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_dialogs_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) { + out_int (0x3f4e0648); + local_next_token (); + if (store_constructor_messages_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_message_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) { + out_int (0x8c718e87); + local_next_token (); + if (store_constructor_messages_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) { + out_int (0x0b446ae3); + local_next_token (); + if (store_constructor_messages_messages_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_messages (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_messages (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_messages_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_sent_encrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) { + out_int (0x560f8935); + local_next_token (); + if (store_constructor_messages_sent_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) { + out_int (0x9493ff32); + local_next_token (); + if (store_constructor_messages_sent_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_sent_encrypted_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_sent_encrypted_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_sent_encrypted_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_sent_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) { + out_int (0x4c3d47f3); + local_next_token (); + if (store_constructor_messages_sent_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) { + out_int (0x35a1a663); + local_next_token (); + if (store_constructor_messages_sent_message_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_sent_message (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_sent_message (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_sent_message_link (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) { + out_int (0xb60a24a6); + local_next_token (); + if (store_constructor_messages_sticker_set (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_sticker_set (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.stickerSet", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_sticker_set (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_messages_stickers (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) { + out_int (0xf1749a22); + local_next_token (); + if (store_constructor_messages_stickers_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) { + out_int (0x8a8ecd32); + local_next_token (); + if (store_constructor_messages_stickers (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_messages_stickers (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_stickers_not_modified (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) { + local_next_token (); + if (store_constructor_messages_stickers (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_photos_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) { + out_int (0x20212ca8); + local_next_token (); + if (store_constructor_photos_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_photos_photo (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) { + local_next_token (); + if (store_constructor_photos_photo (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_photos_photos (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) { + out_int (0x8dca6aa5); + local_next_token (); + if (store_constructor_photos_photos (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) { + out_int (0x15051f54); + local_next_token (); + if (store_constructor_photos_photos_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_photos_photos (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) { + local_next_token (); + if (store_constructor_photos_photos (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_photos_photos_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_storage_file_type (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) { + out_int (0xaa963b05); + local_next_token (); + if (store_constructor_storage_file_unknown (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) { + out_int (0x007efe0e); + local_next_token (); + if (store_constructor_storage_file_jpeg (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) { + out_int (0xcae1aadf); + local_next_token (); + if (store_constructor_storage_file_gif (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) { + out_int (0x0a4f63c0); + local_next_token (); + if (store_constructor_storage_file_png (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) { + out_int (0xae1e508d); + local_next_token (); + if (store_constructor_storage_file_pdf (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) { + out_int (0x528a0677); + local_next_token (); + if (store_constructor_storage_file_mp3 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) { + out_int (0x4b09ebbc); + local_next_token (); + if (store_constructor_storage_file_mov (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) { + out_int (0x40bc6f52); + local_next_token (); + if (store_constructor_storage_file_partial (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) { + out_int (0xb3cea0e4); + local_next_token (); + if (store_constructor_storage_file_mp4 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) { + out_int (0x1081464c); + local_next_token (); + if (store_constructor_storage_file_webp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_storage_file_type (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_unknown (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_jpeg (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_gif (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_png (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_pdf (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_mp3 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_mov (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_partial (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_mp4 (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) { + local_next_token (); + if (store_constructor_storage_file_webp (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_updates_difference (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) { + out_int (0x5d75a138); + local_next_token (); + if (store_constructor_updates_difference_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) { + out_int (0x00f49ca0); + local_next_token (); + if (store_constructor_updates_difference (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) { + out_int (0xa8fb1981); + local_next_token (); + if (store_constructor_updates_difference_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_updates_difference (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_difference_empty (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_difference (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_difference_slice (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_updates_state (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) { + out_int (0xa56c2a3e); + local_next_token (); + if (store_constructor_updates_state (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_updates_state (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) { + local_next_token (); + if (store_constructor_updates_state (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_upload_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) { + out_int (0x096a18d5); + local_next_token (); + if (store_constructor_upload_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +int store_type_bare_upload_file (struct paramed_type *T) { + expect_token ("(", 1); + if (cur_token_len < 0) { return -1; } + if (cur_token_len < 0) { return -1; } + if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) { + local_next_token (); + if (store_constructor_upload_file (T) < 0) { return -1; } + expect_token (")", 1); + return 0; + } + return -1; +} +struct paramed_type *store_function_account_change_phone (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_check_username (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_delete_account (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "reason", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_account_t_t_l (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_authorizations (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1250abde, .id = "account.Authorizations", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_notify_settings (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_notify_peer (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_password (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xeac2a804, .id = "account.Password", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_password_settings (void) { + if (cur_token_len >= 0 && cur_token_len == 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb7b72ab3, .id = "account.PasswordSettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_privacy (void) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_privacy_key (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_get_wall_papers (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xafa14973, .id = "WallPaper", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_register_device (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_sandbox", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field6) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field7) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_reset_authorization (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_reset_notify_settings (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_send_change_phone_code (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa4f58c4c, .id = "account.SentChangePhoneCode", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_set_account_t_t_l (void) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_account_days_t_t_l (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_set_privacy (void) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_privacy_key (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4b815163, .id = "InputPrivacyRule", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_unregister_device (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_device_locked (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "period", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_notify_settings (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_notify_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "settings", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x46a2ce98, .id = "InputPeerNotifySettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer_notify_settings (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_password_settings (void) { + if (cur_token_len >= 0 && cur_token_len == 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "new_settings", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xbcfc532c, .id = "account.PasswordInputSettings", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_account_password_input_settings (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_profile (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_status (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "offline", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_account_update_username (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_bind_temp_auth_key (void) { + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "perm_auth_key_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "expires_at", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "encrypted_message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_check_password (void) { + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "password_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_check_phone (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x811ea28e, .id = "auth.CheckedPhone", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_export_authorization (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xdf969c2d, .id = "auth.ExportedAuthorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_import_authorization (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_import_bot_authorization (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "bot_auth_token", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_log_out (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_recover_password (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_request_password_recovery (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x137948a5, .id = "auth.PasswordRecovery", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_reset_authorizations (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_send_call (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_send_code (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "sms_type", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0cc8bc16, .id = "auth.SentCode", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_send_invites (void) { + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "phone_numbers", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_send_sms (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_sign_in (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_auth_sign_up (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xff036af1, .id = "auth.Authorization", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_block (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_delete_contact (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_delete_contacts (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_export_card (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_get_blocked (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8c1b8fb4, .id = "contacts.Blocked", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_get_contacts (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd8c02560, .id = "contacts.Contacts", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_get_statuses (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xd3680c61, .id = "ContactStatus", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_get_suggested (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5649dcc5, .id = "contacts.Suggested", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_import_card (void) { + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "export_card", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_import_contacts (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf392b7f4, .id = "InputContact", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "replace", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xad524315, .id = "contacts.ImportedContacts", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_resolve_username (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_search (void) { + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0566000e, .id = "contacts.Found", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_contacts_unblock (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_checkin (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_create_geo_chat (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_point (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_edit_chat_photo (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_chat_photo (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_edit_chat_title (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_get_full_chat (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_get_history (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_get_located (void) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_point (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "radius", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x48feb267, .id = "geochats.Located", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_get_recents (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_search (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x80895ae0, .id = "MessagesFilter", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_messages_filter (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_send_media (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_media (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_send_message (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_geochats_set_typing (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_get_app_update (void) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ddd9627, .id = "help.AppUpdate", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_get_config (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4e32b894, .id = "Config", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_get_invite_text (void) { + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x18cb9f78, .id = "help.InviteText", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_get_nearest_dc (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8e1a1775, .id = "NearestDc", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_get_support (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17c6b5f6, .id = "help.Support", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_help_save_app_log (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "events", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x770656a8, .id = "InputAppEvent", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_init_connection (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field5) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field7 = store_function_any (); + if (!field7) { return 0; } + if (ODDP(field7)) { return 0; } + struct paramed_type *var0 = field7; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *store_function_invoke_after_msg (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = store_function_any (); + if (!field3) { return 0; } + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *store_function_invoke_after_msgs (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "msg_ids", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = store_function_any (); + if (!field3) { return 0; } + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *store_function_invoke_with_layer (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = store_function_any (); + if (!field3) { return 0; } + if (ODDP(field3)) { return 0; } + struct paramed_type *var0 = field3; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *store_function_invoke_without_updates (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = store_function_any (); + if (!field2) { return 0; } + if (ODDP(field2)) { return 0; } + struct paramed_type *var0 = field2; assert (var0); + struct paramed_type *R = + var0; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_accept_encryption (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_add_chat_user (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "fwd_limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_check_chat_invite (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x94f910b1, .id = "ChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_create_chat (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_delete_chat_user (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_delete_history (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_delete_messages (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x84d19185, .id = "messages.AffectedMessages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_discard_encryption (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_edit_chat_photo (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_chat_photo (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_edit_chat_title (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_export_chat_invite (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_forward_message (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_forward_messages (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_all_stickers (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb485502f, .id = "messages.AllStickers", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_chats (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x64ff9fd5, .id = "messages.Chats", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_dh_config (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "random_length", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xecc058e8, .id = "messages.DhConfig", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_dialogs (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x645af8b3, .id = "messages.Dialogs", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_full_chat (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_history (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_messages (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_sticker_set (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb60a24a6, .id = "messages.StickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_stickers (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7bfa5710, .id = "messages.Stickers", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_get_web_page_preview (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_import_chat_invite (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_install_sticker_set (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_read_encrypted_history (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_read_history (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb45c69d1, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_read_message_contents (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x84d19185, .id = "messages.AffectedMessages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_received_messages (void) { + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa384b779, .id = "ReceivedNotifyMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_received_queue (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "max_qts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_request_encryption (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_search (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x80895ae0, .id = "MessagesFilter", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_messages_filter (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field5) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field6) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field7 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field7) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field8 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field8) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_broadcast (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_media (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_encrypted (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_encrypted_file (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0b5c064f, .id = "InputEncryptedFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_file (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_encrypted_service (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_media (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + if (cur_token_len < 0) { return 0; } + if (!is_int ()) { return 0;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field2) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + } + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xb32c91dd, .id = "InputMedia", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_media (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field5) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_reply_markup (field6) < 0) { return 0;} + } + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_send_message (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + if (cur_token_len < 0) { return 0; } + if (!is_int ()) { return 0;} + struct paramed_type *var0 = INT2PTR (get_int ()); + out_int (get_int ()); + assert (var0); + local_next_token (); + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field2) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 0)) { + if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "reply_to_msg_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + } + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field5) < 0) { return 0;} + if (PTR2INT (var0) & (1 << 2)) { + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "reply_markup", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_reply_markup (field6) < 0) { return 0;} + } + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x799ce190, .id = "messages.SentMessage", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_set_encrypted_typing (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_encrypted_chat (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bool (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_set_typing (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_peer (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_send_message_action (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_start_bot (void) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "bot", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "start_param", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x22499d27, .id = "Updates", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_messages_uninstall_sticker_set (void) { + if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "stickerset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_sticker_set (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_photos_delete_photos (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_photos_get_user_photos (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x98cf75f1, .id = "photos.Photos", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_photos_update_profile_photo (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo_crop (field2) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_photos_upload_profile_photo (void) { + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_geo_point (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_photo_crop (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x20212ca8, .id = "photos.Photo", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_req_d_h_params (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field4) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "public_key_fingerprint", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field5 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field5) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field6 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field6) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa9230301, .id = "Server_DH_Params", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_req_pq (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x05162463, .id = "ResPQ", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_set_client_d_h_params (void) { + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int128 (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_string (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xdb8a468f, .id = "Set_client_DH_params_answer", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_updates_get_difference (void) { + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf57a2419, .id = "updates.Difference", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_updates_get_state (void) { + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_upload_get_file (void) { + if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xe6daa38b, .id = "InputFileLocation", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_file_location (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x096a18d5, .id = "upload.File", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_upload_save_big_file_part (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "file_total_parts", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field3) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field4 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field4) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_upload_save_file_part (void) { + if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_long (field1) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field2 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_int (field2) < 0) { return 0;} + if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field3 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_bare_bytes (field3) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_users_get_full_user (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }; + if (store_type_input_user (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x5a89ac5b, .id = "UserFull", .params_num = 0, .params_types = 0}, + .params = 0, + }; + return paramed_type_dup (R); +} +struct paramed_type *store_function_users_get_users (void) { + if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) { + local_next_token (); + expect_token_ptr (":", 1); + } + struct paramed_type *field1 = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + if (store_type_vector (field1) < 0) { return 0;} + struct paramed_type *R = + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0}, + .params = (struct paramed_type *[]){ + &(struct paramed_type){ + .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0}, + .params = 0, + }, + } + }; + return paramed_type_dup (R); +} +int store_type_any (struct paramed_type *T) { + switch (T->type->name) { + case 0xb8d0afdf: return store_type_account_days_t_t_l (T); + case 0x472f5020: return store_type_bare_account_days_t_t_l (T); + case 0x9fc5ec4e: return store_type_audio (T); + case 0x603a13b1: return store_type_bare_audio (T); + case 0x7bf2e6f6: return store_type_authorization (T); + case 0x840d1909: return store_type_bare_authorization (T); + case 0x250be282: return store_type_bool (T); + case 0xdaf41d7d: return store_type_bare_bool (T); + case 0x75e7ea6c: return store_type_bot_command (T); + case 0x8a181593: return store_type_bare_bot_command (T); + case 0xb2e16f93: return store_type_bot_info (T); + case 0x4d1e906c: return store_type_bare_bot_info (T); + case 0x0ee1379f: return store_type_bytes (T); + case 0xf11ec860: return store_type_bare_bytes (T); + case 0x7bd865dc: return store_type_chat (T); + case 0x84279a23: return store_type_bare_chat (T); + case 0x2e02a614: return store_type_chat_full (T); + case 0xd1fd59eb: return store_type_bare_chat_full (T); + case 0x94f910b1: return store_type_chat_invite (T); + case 0x6b06ef4e: return store_type_bare_chat_invite (T); + case 0x3631cf4c: return store_type_chat_located (T); + case 0xc9ce30b3: return store_type_bare_chat_located (T); + case 0xc8d7493e: return store_type_chat_participant (T); + case 0x3728b6c1: return store_type_bare_chat_participant (T); + case 0x77930f9f: return store_type_chat_participants (T); + case 0x886cf060: return store_type_bare_chat_participants (T); + case 0x56922676: return store_type_chat_photo (T); + case 0xa96dd989: return store_type_bare_chat_photo (T); + case 0x6643b654: return store_type_client_d_h_inner_data (T); + case 0x99bc49ab: return store_type_bare_client_d_h_inner_data (T); + case 0x4e32b894: return store_type_config (T); + case 0xb1cd476b: return store_type_bare_config (T); + case 0xf911c994: return store_type_contact (T); + case 0x06ee366b: return store_type_bare_contact (T); + case 0x561bc879: return store_type_contact_blocked (T); + case 0xa9e43786: return store_type_bare_contact_blocked (T); + case 0xea879f95: return store_type_contact_found (T); + case 0x1578606a: return store_type_bare_contact_found (T); + case 0x522fbc63: return store_type_contact_link (T); + case 0xadd0439c: return store_type_bare_contact_link (T); + case 0xd3680c61: return store_type_contact_status (T); + case 0x2c97f39e: return store_type_bare_contact_status (T); + case 0x3de191a1: return store_type_contact_suggested (T); + case 0xc21e6e5e: return store_type_bare_contact_suggested (T); + case 0x2b1a62f0: return store_type_dc_option (T); + case 0xd4e59d0f: return store_type_bare_dc_option (T); + case 0x535b7918: return store_type_decrypted_message (T); + case 0xaca486e7: return store_type_bare_decrypted_message (T); + case 0x4e0eefde: return store_type_decrypted_message_action (T); + case 0xb1f11021: return store_type_bare_decrypted_message_action (T); + case 0x1be31789: return store_type_decrypted_message_layer (T); + case 0xe41ce876: return store_type_bare_decrypted_message_layer (T); + case 0x34e0d674: return store_type_decrypted_message_media (T); + case 0xcb1f298b: return store_type_bare_decrypted_message_media (T); + case 0xc1dd804a: return store_type_dialog (T); + case 0x3e227fb5: return store_type_bare_dialog (T); + case 0xae636f24: return store_type_disabled_feature (T); + case 0x519c90db: return store_type_bare_disabled_feature (T); + case 0x51a73418: return store_type_document (T); + case 0xae58cbe7: return store_type_bare_document (T); + case 0x97c637a3: return store_type_document_attribute (T); + case 0x6839c85c: return store_type_bare_document_attribute (T); + case 0x2210c154: return store_type_double (T); + case 0xddef3eab: return store_type_bare_double (T); + case 0xb1718213: return store_type_encrypted_chat (T); + case 0x4e8e7dec: return store_type_bare_encrypted_chat (T); + case 0x886fd032: return store_type_encrypted_file (T); + case 0x77902fcd: return store_type_bare_encrypted_file (T); + case 0xce6b8a1e: return store_type_encrypted_message (T); + case 0x319475e1: return store_type_bare_encrypted_message (T); + case 0xc4b9f9bb: return store_type_error (T); + case 0x3b460644: return store_type_bare_error (T); + case 0x95f132d5: return store_type_exported_chat_invite (T); + case 0x6a0ecd2a: return store_type_bare_exported_chat_invite (T); + case 0x2f8ffb30: return store_type_file_location (T); + case 0xd07004cf: return store_type_bare_file_location (T); + case 0xf67b4034: return store_type_geo_chat_message (T); + case 0x0984bfcb: return store_type_bare_geo_chat_message (T); + case 0x315e0a53: return store_type_geo_point (T); + case 0xcea1f5ac: return store_type_bare_geo_point (T); + case 0xd0028438: return store_type_imported_contact (T); + case 0x2ffd7bc7: return store_type_bare_imported_contact (T); + case 0x770656a8: return store_type_input_app_event (T); + case 0x88f9a957: return store_type_bare_input_app_event (T); + case 0xae8e9c7b: return store_type_input_audio (T); + case 0x51716384: return store_type_bare_input_audio (T); + case 0x3a60776d: return store_type_input_chat_photo (T); + case 0xc59f8892: return store_type_bare_input_chat_photo (T); + case 0xf392b7f4: return store_type_input_contact (T); + case 0x0c6d480b: return store_type_bare_input_contact (T); + case 0x6a8963fc: return store_type_input_document (T); + case 0x95769c03: return store_type_bare_input_document (T); + case 0xf141b5e1: return store_type_input_encrypted_chat (T); + case 0x0ebe4a1e: return store_type_bare_input_encrypted_chat (T); + case 0x0b5c064f: return store_type_input_encrypted_file (T); + case 0xf4a3f9b0: return store_type_bare_input_encrypted_file (T); + case 0x0f60f9ca: return store_type_input_file (T); + case 0xf09f0635: return store_type_bare_input_file (T); + case 0xe6daa38b: return store_type_input_file_location (T); + case 0x19255c74: return store_type_bare_input_file_location (T); + case 0x74d456fa: return store_type_input_geo_chat (T); + case 0x8b2ba905: return store_type_bare_input_geo_chat (T); + case 0x17768f1f: return store_type_input_geo_point (T); + case 0xe88970e0: return store_type_bare_input_geo_point (T); + case 0xb32c91dd: return store_type_input_media (T); + case 0x4cd36e22: return store_type_bare_input_media (T); + case 0x02b6911b: return store_type_input_notify_peer (T); + case 0xfd496ee4: return store_type_bare_input_notify_peer (T); + case 0x9e67268d: return store_type_input_peer (T); + case 0x6198d972: return store_type_bare_input_peer (T); + case 0x185a48ac: return store_type_input_peer_notify_events (T); + case 0xe7a5b753: return store_type_bare_input_peer_notify_events (T); + case 0x46a2ce98: return store_type_input_peer_notify_settings (T); + case 0xb95d3167: return store_type_bare_input_peer_notify_settings (T); + case 0xe74279c9: return store_type_input_photo (T); + case 0x18bd8636: return store_type_bare_input_photo (T); + case 0x7477e321: return store_type_input_photo_crop (T); + case 0x8b881cde: return store_type_bare_input_photo_crop (T); + case 0x4f96cb18: return store_type_input_privacy_key (T); + case 0xb06934e7: return store_type_bare_input_privacy_key (T); + case 0x4b815163: return store_type_input_privacy_rule (T); + case 0xb47eae9c: return store_type_bare_input_privacy_rule (T); + case 0xe44d415c: return store_type_input_sticker_set (T); + case 0x1bb2bea3: return store_type_bare_input_sticker_set (T); + case 0xadfe0c6a: return store_type_input_user (T); + case 0x5201f395: return store_type_bare_input_user (T); + case 0xbb5f7a27: return store_type_input_video (T); + case 0x44a085d8: return store_type_bare_input_video (T); + case 0xa8509bda: return store_type_int (T); + case 0x57af6425: return store_type_bare_int (T); + case 0x7d36c439: return store_type_int128 (T); + case 0x82c93bc6: return store_type_bare_int128 (T); + case 0xf2c798b3: return store_type_int256 (T); + case 0x0d38674c: return store_type_bare_int256 (T); + case 0xa2fa4880: return store_type_keyboard_button (T); + case 0x5d05b77f: return store_type_bare_keyboard_button (T); + case 0x77608b83: return store_type_keyboard_button_row (T); + case 0x889f747c: return store_type_bare_keyboard_button_row (T); + case 0x22076cba: return store_type_long (T); + case 0xddf89345: return store_type_bare_long (T); + case 0x5d652a7f: return store_type_message (T); + case 0xa29ad580: return store_type_bare_message (T); + case 0x383415fa: return store_type_message_action (T); + case 0xc7cbea05: return store_type_bare_message_action (T); + case 0x95f2471a: return store_type_message_media (T); + case 0x6a0db8e5: return store_type_bare_message_media (T); + case 0x80895ae0: return store_type_messages_filter (T); + case 0x7f76a51f: return store_type_bare_messages_filter (T); + case 0x8e1a1775: return store_type_nearest_dc (T); + case 0x71e5e88a: return store_type_bare_nearest_dc (T); + case 0x9fcb8237: return store_type_notify_peer (T); + case 0x60347dc8: return store_type_bare_notify_peer (T); + case 0x56730bcc: return store_type_null (T); + case 0xa98cf433: return store_type_bare_null (T); + case 0xbfa3de38: return store_type_p_q_inner_data (T); + case 0x405c21c7: return store_type_bare_p_q_inner_data (T); + case 0x276159d6: return store_type_peer (T); + case 0xd89ea629: return store_type_bare_peer (T); + case 0xc0c8d13b: return store_type_peer_notify_events (T); + case 0x3f372ec4: return store_type_bare_peer_notify_events (T); + case 0xfdf894fc: return store_type_peer_notify_settings (T); + case 0x02076b03: return store_type_bare_peer_notify_settings (T); + case 0xc207550a: return store_type_photo (T); + case 0x3df8aaf5: return store_type_bare_photo (T); + case 0x900f60dd: return store_type_photo_size (T); + case 0x6ff09f22: return store_type_bare_photo_size (T); + case 0xbc2eab30: return store_type_privacy_key (T); + case 0x43d154cf: return store_type_bare_privacy_key (T); + case 0xa8638aec: return store_type_privacy_rule (T); + case 0x579c7513: return store_type_bare_privacy_rule (T); + case 0xa384b779: return store_type_received_notify_message (T); + case 0x5c7b4886: return store_type_bare_received_notify_message (T); + case 0x612ca4a9: return store_type_reply_markup (T); + case 0x9ed35b56: return store_type_bare_reply_markup (T); + case 0x05162463: return store_type_res_p_q (T); + case 0xfae9db9c: return store_type_bare_res_p_q (T); + case 0x70541c7e: return store_type_send_message_action (T); + case 0x8fabe381: return store_type_bare_send_message_action (T); + case 0xa9230301: return store_type_server_d_h_params (T); + case 0x56dcfcfe: return store_type_bare_server_d_h_params (T); + case 0xb5890dba: return store_type_server_d_h_inner_data (T); + case 0x4a76f245: return store_type_bare_server_d_h_inner_data (T); + case 0xdb8a468f: return store_type_set_client_d_h_params_answer (T); + case 0x2475b970: return store_type_bare_set_client_d_h_params_answer (T); + case 0x12b299d4: return store_type_sticker_pack (T); + case 0xed4d662b: return store_type_bare_sticker_pack (T); + case 0xa7a43b17: return store_type_sticker_set (T); + case 0x585bc4e8: return store_type_bare_sticker_set (T); + case 0xb5286e24: return store_type_string (T); + case 0x4ad791db: return store_type_bare_string (T); + case 0x2e02b27e: return store_type_update (T); + case 0xd1fd4d81: return store_type_bare_update (T); + case 0x22499d27: return store_type_updates (T); + case 0xddb662d8: return store_type_bare_updates (T); + case 0x02e6c0c8: return store_type_user (T); + case 0xfd193f37: return store_type_bare_user (T); + case 0x5a89ac5b: return store_type_user_full (T); + case 0xa57653a4: return store_type_bare_user_full (T); + case 0x9a486229: return store_type_user_profile_photo (T); + case 0x65b79dd6: return store_type_bare_user_profile_photo (T); + case 0x76de9570: return store_type_user_status (T); + case 0x89216a8f: return store_type_bare_user_status (T); + case 0x1cb5c415: return store_type_vector (T); + case 0xe34a3bea: return store_type_bare_vector (T); + case 0x1716b174: return store_type_video (T); + case 0xe8e94e8b: return store_type_bare_video (T); + case 0xafa14973: return store_type_wall_paper (T); + case 0x505eb68c: return store_type_bare_wall_paper (T); + case 0x8d8c0d41: return store_type_web_page (T); + case 0x7273f2be: return store_type_bare_web_page (T); + case 0x1250abde: return store_type_account_authorizations (T); + case 0xedaf5421: return store_type_bare_account_authorizations (T); + case 0xeac2a804: return store_type_account_password (T); + case 0x153d57fb: return store_type_bare_account_password (T); + case 0xbcfc532c: return store_type_account_password_input_settings (T); + case 0x4303acd3: return store_type_bare_account_password_input_settings (T); + case 0xb7b72ab3: return store_type_account_password_settings (T); + case 0x4848d54c: return store_type_bare_account_password_settings (T); + case 0x554abb6f: return store_type_account_privacy_rules (T); + case 0xaab54490: return store_type_bare_account_privacy_rules (T); + case 0xa4f58c4c: return store_type_account_sent_change_phone_code (T); + case 0x5b0a73b3: return store_type_bare_account_sent_change_phone_code (T); + case 0xff036af1: return store_type_auth_authorization (T); + case 0x00fc950e: return store_type_bare_auth_authorization (T); + case 0x811ea28e: return store_type_auth_checked_phone (T); + case 0x7ee15d71: return store_type_bare_auth_checked_phone (T); + case 0xdf969c2d: return store_type_auth_exported_authorization (T); + case 0x206963d2: return store_type_bare_auth_exported_authorization (T); + case 0x137948a5: return store_type_auth_password_recovery (T); + case 0xec86b75a: return store_type_bare_auth_password_recovery (T); + case 0x0cc8bc16: return store_type_auth_sent_code (T); + case 0xf33743e9: return store_type_bare_auth_sent_code (T); + case 0x0377168f: return store_type_binlog_encr_key (T); + case 0xfc88e970: return store_type_bare_binlog_encr_key (T); + case 0x66ff03a6: return store_type_binlog_update (T); + case 0x9900fc59: return store_type_bare_binlog_update (T); + case 0x8c1b8fb4: return store_type_contacts_blocked (T); + case 0x73e4704b: return store_type_bare_contacts_blocked (T); + case 0xd8c02560: return store_type_contacts_contacts (T); + case 0x273fda9f: return store_type_bare_contacts_contacts (T); + case 0x0566000e: return store_type_contacts_found (T); + case 0xfa99fff1: return store_type_bare_contacts_found (T); + case 0xad524315: return store_type_contacts_imported_contacts (T); + case 0x52adbcea: return store_type_bare_contacts_imported_contacts (T); + case 0x3ace484c: return store_type_contacts_link (T); + case 0xc531b7b3: return store_type_bare_contacts_link (T); + case 0x5649dcc5: return store_type_contacts_suggested (T); + case 0xa9b6233a: return store_type_bare_contacts_suggested (T); + case 0x48feb267: return store_type_geochats_located (T); + case 0xb7014d98: return store_type_bare_geochats_located (T); + case 0x6d0a0e59: return store_type_geochats_messages (T); + case 0x92f5f1a6: return store_type_bare_geochats_messages (T); + case 0x17b1578b: return store_type_geochats_stated_message (T); + case 0xe84ea874: return store_type_bare_geochats_stated_message (T); + case 0x4ddd9627: return store_type_help_app_update (T); + case 0xb22269d8: return store_type_bare_help_app_update (T); + case 0x18cb9f78: return store_type_help_invite_text (T); + case 0xe7346087: return store_type_bare_help_invite_text (T); + case 0x17c6b5f6: return store_type_help_support (T); + case 0xe8394a09: return store_type_bare_help_support (T); + case 0xb45c69d1: return store_type_messages_affected_history (T); + case 0x4ba3962e: return store_type_bare_messages_affected_history (T); + case 0x84d19185: return store_type_messages_affected_messages (T); + case 0x7b2e6e7a: return store_type_bare_messages_affected_messages (T); + case 0xb485502f: return store_type_messages_all_stickers (T); + case 0x4b7aafd0: return store_type_bare_messages_all_stickers (T); + case 0xe5d7d19c: return store_type_messages_chat_full (T); + case 0x1a282e63: return store_type_bare_messages_chat_full (T); + case 0x64ff9fd5: return store_type_messages_chats (T); + case 0x9b00602a: return store_type_bare_messages_chats (T); + case 0xecc058e8: return store_type_messages_dh_config (T); + case 0x133fa717: return store_type_bare_messages_dh_config (T); + case 0x645af8b3: return store_type_messages_dialogs (T); + case 0x9ba5074c: return store_type_bare_messages_dialogs (T); + case 0x3f4e0648: return store_type_messages_message (T); + case 0xc0b1f9b7: return store_type_bare_messages_message (T); + case 0x8735e464: return store_type_messages_messages (T); + case 0x78ca1b9b: return store_type_bare_messages_messages (T); + case 0xc29c7607: return store_type_messages_sent_encrypted_message (T); + case 0x3d6389f8: return store_type_bare_messages_sent_encrypted_message (T); + case 0x799ce190: return store_type_messages_sent_message (T); + case 0x86631e6f: return store_type_bare_messages_sent_message (T); + case 0xb60a24a6: return store_type_messages_sticker_set (T); + case 0x49f5db59: return store_type_bare_messages_sticker_set (T); + case 0x7bfa5710: return store_type_messages_stickers (T); + case 0x8405a8ef: return store_type_bare_messages_stickers (T); + case 0x20212ca8: return store_type_photos_photo (T); + case 0xdfded357: return store_type_bare_photos_photo (T); + case 0x98cf75f1: return store_type_photos_photos (T); + case 0x67308a0e: return store_type_bare_photos_photos (T); + case 0x3e2838a8: return store_type_storage_file_type (T); + case 0xc1d7c757: return store_type_bare_storage_file_type (T); + case 0xf57a2419: return store_type_updates_difference (T); + case 0x0a85dbe6: return store_type_bare_updates_difference (T); + case 0xa56c2a3e: return store_type_updates_state (T); + case 0x5a93d5c1: return store_type_bare_updates_state (T); + case 0x096a18d5: return store_type_upload_file (T); + case 0xf695e72a: return store_type_bare_upload_file (T); + default: return -1; } +} +struct paramed_type *store_function_any (void) { + if (cur_token_len != 1 || *cur_token != '(') { return 0; } + local_next_token (); + if (cur_token_len == 1 || *cur_token == '.') { + local_next_token (); + if (cur_token_len != 1 || *cur_token != '=') { return 0; } + local_next_token (); + }; + if (cur_token_len < 0) { return 0; } + if (cur_token_len == 19 && !memcmp (cur_token, "account.changePhone", cur_token_len)) { + out_int (0x70c32edb); + local_next_token (); + struct paramed_type *P = store_function_account_change_phone (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.checkUsername", cur_token_len)) { + out_int (0x2714d86c); + local_next_token (); + struct paramed_type *P = store_function_account_check_username (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.deleteAccount", cur_token_len)) { + out_int (0x418d4e0b); + local_next_token (); + struct paramed_type *P = store_function_account_delete_account (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.getAccountTTL", cur_token_len)) { + out_int (0x08fc711d); + local_next_token (); + struct paramed_type *P = store_function_account_get_account_t_t_l (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "account.getAuthorizations", cur_token_len)) { + out_int (0xe320c158); + local_next_token (); + struct paramed_type *P = store_function_account_get_authorizations (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "account.getNotifySettings", cur_token_len)) { + out_int (0x12b3ad31); + local_next_token (); + struct paramed_type *P = store_function_account_get_notify_settings (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "account.getPassword", cur_token_len)) { + out_int (0x548a30f5); + local_next_token (); + struct paramed_type *P = store_function_account_get_password (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.getPasswordSettings", cur_token_len)) { + out_int (0xbc8d11bb); + local_next_token (); + struct paramed_type *P = store_function_account_get_password_settings (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "account.getPrivacy", cur_token_len)) { + out_int (0xdadbc950); + local_next_token (); + struct paramed_type *P = store_function_account_get_privacy (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.getWallPapers", cur_token_len)) { + out_int (0xc04cfac2); + local_next_token (); + struct paramed_type *P = store_function_account_get_wall_papers (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "account.registerDevice", cur_token_len)) { + out_int (0x446c712c); + local_next_token (); + struct paramed_type *P = store_function_account_register_device (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "account.resetAuthorization", cur_token_len)) { + out_int (0xdf77f3bc); + local_next_token (); + struct paramed_type *P = store_function_account_reset_authorization (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.resetNotifySettings", cur_token_len)) { + out_int (0xdb7e1747); + local_next_token (); + struct paramed_type *P = store_function_account_reset_notify_settings (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "account.sendChangePhoneCode", cur_token_len)) { + out_int (0xa407a8f4); + local_next_token (); + struct paramed_type *P = store_function_account_send_change_phone_code (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.setAccountTTL", cur_token_len)) { + out_int (0x2442485e); + local_next_token (); + struct paramed_type *P = store_function_account_set_account_t_t_l (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "account.setPrivacy", cur_token_len)) { + out_int (0xc9f81ce8); + local_next_token (); + struct paramed_type *P = store_function_account_set_privacy (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "account.unregisterDevice", cur_token_len)) { + out_int (0x65c55b40); + local_next_token (); + struct paramed_type *P = store_function_account_unregister_device (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "account.updateDeviceLocked", cur_token_len)) { + out_int (0x38df3532); + local_next_token (); + struct paramed_type *P = store_function_account_update_device_locked (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "account.updateNotifySettings", cur_token_len)) { + out_int (0x84be5b93); + local_next_token (); + struct paramed_type *P = store_function_account_update_notify_settings (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 30 && !memcmp (cur_token, "account.updatePasswordSettings", cur_token_len)) { + out_int (0xfa7c4b86); + local_next_token (); + struct paramed_type *P = store_function_account_update_password_settings (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "account.updateProfile", cur_token_len)) { + out_int (0xf0888d68); + local_next_token (); + struct paramed_type *P = store_function_account_update_profile (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "account.updateStatus", cur_token_len)) { + out_int (0x6628562c); + local_next_token (); + struct paramed_type *P = store_function_account_update_status (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "account.updateUsername", cur_token_len)) { + out_int (0x3e0bdd7c); + local_next_token (); + struct paramed_type *P = store_function_account_update_username (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "auth.bindTempAuthKey", cur_token_len)) { + out_int (0xcdd42a05); + local_next_token (); + struct paramed_type *P = store_function_auth_bind_temp_auth_key (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "auth.checkPassword", cur_token_len)) { + out_int (0x0a63011e); + local_next_token (); + struct paramed_type *P = store_function_auth_check_password (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "auth.checkPhone", cur_token_len)) { + out_int (0x6fe51dfb); + local_next_token (); + struct paramed_type *P = store_function_auth_check_phone (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.exportAuthorization", cur_token_len)) { + out_int (0xe5bfffcd); + local_next_token (); + struct paramed_type *P = store_function_auth_export_authorization (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.importAuthorization", cur_token_len)) { + out_int (0xe3ef9613); + local_next_token (); + struct paramed_type *P = store_function_auth_import_authorization (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "auth.importBotAuthorization", cur_token_len)) { + out_int (0x67a3ff2c); + local_next_token (); + struct paramed_type *P = store_function_auth_import_bot_authorization (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.logOut", cur_token_len)) { + out_int (0x5717da40); + local_next_token (); + struct paramed_type *P = store_function_auth_log_out (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "auth.recoverPassword", cur_token_len)) { + out_int (0x4ea56e92); + local_next_token (); + struct paramed_type *P = store_function_auth_recover_password (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "auth.requestPasswordRecovery", cur_token_len)) { + out_int (0xd897bc66); + local_next_token (); + struct paramed_type *P = store_function_auth_request_password_recovery (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "auth.resetAuthorizations", cur_token_len)) { + out_int (0x9fab0d1a); + local_next_token (); + struct paramed_type *P = store_function_auth_reset_authorizations (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCall", cur_token_len)) { + out_int (0x03c51564); + local_next_token (); + struct paramed_type *P = store_function_auth_send_call (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCode", cur_token_len)) { + out_int (0x768d5f4d); + local_next_token (); + struct paramed_type *P = store_function_auth_send_code (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "auth.sendInvites", cur_token_len)) { + out_int (0x771c1d97); + local_next_token (); + struct paramed_type *P = store_function_auth_send_invites (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 12 && !memcmp (cur_token, "auth.sendSms", cur_token_len)) { + out_int (0x0da9f3e8); + local_next_token (); + struct paramed_type *P = store_function_auth_send_sms (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.signIn", cur_token_len)) { + out_int (0xbcd51581); + local_next_token (); + struct paramed_type *P = store_function_auth_sign_in (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 11 && !memcmp (cur_token, "auth.signUp", cur_token_len)) { + out_int (0x1b067634); + local_next_token (); + struct paramed_type *P = store_function_auth_sign_up (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "contacts.block", cur_token_len)) { + out_int (0x332b49fc); + local_next_token (); + struct paramed_type *P = store_function_contacts_block (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "contacts.deleteContact", cur_token_len)) { + out_int (0x8e953744); + local_next_token (); + struct paramed_type *P = store_function_contacts_delete_contact (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "contacts.deleteContacts", cur_token_len)) { + out_int (0x59ab389e); + local_next_token (); + struct paramed_type *P = store_function_contacts_delete_contacts (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.exportCard", cur_token_len)) { + out_int (0x84e53737); + local_next_token (); + struct paramed_type *P = store_function_contacts_export_card (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.getBlocked", cur_token_len)) { + out_int (0xf57c350f); + local_next_token (); + struct paramed_type *P = store_function_contacts_get_blocked (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getContacts", cur_token_len)) { + out_int (0x22c6aa08); + local_next_token (); + struct paramed_type *P = store_function_contacts_get_contacts (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getStatuses", cur_token_len)) { + out_int (0xc4a353ee); + local_next_token (); + struct paramed_type *P = store_function_contacts_get_statuses (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "contacts.getSuggested", cur_token_len)) { + out_int (0xcd773428); + local_next_token (); + struct paramed_type *P = store_function_contacts_get_suggested (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "contacts.importCard", cur_token_len)) { + out_int (0x4fe196fe); + local_next_token (); + struct paramed_type *P = store_function_contacts_import_card (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "contacts.importContacts", cur_token_len)) { + out_int (0xda30b32d); + local_next_token (); + struct paramed_type *P = store_function_contacts_import_contacts (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "contacts.resolveUsername", cur_token_len)) { + out_int (0x0bf0131c); + local_next_token (); + struct paramed_type *P = store_function_contacts_resolve_username (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "contacts.search", cur_token_len)) { + out_int (0x11f812d8); + local_next_token (); + struct paramed_type *P = store_function_contacts_search (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "contacts.unblock", cur_token_len)) { + out_int (0xe54100bd); + local_next_token (); + struct paramed_type *P = store_function_contacts_unblock (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "geochats.checkin", cur_token_len)) { + out_int (0x55b3e8fb); + local_next_token (); + struct paramed_type *P = store_function_geochats_checkin (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.createGeoChat", cur_token_len)) { + out_int (0x0e092e16); + local_next_token (); + struct paramed_type *P = store_function_geochats_create_geo_chat (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatPhoto", cur_token_len)) { + out_int (0x35d81a95); + local_next_token (); + struct paramed_type *P = store_function_geochats_edit_chat_photo (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatTitle", cur_token_len)) { + out_int (0x4c8e2273); + local_next_token (); + struct paramed_type *P = store_function_geochats_edit_chat_title (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "geochats.getFullChat", cur_token_len)) { + out_int (0x6722dd6f); + local_next_token (); + struct paramed_type *P = store_function_geochats_get_full_chat (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getHistory", cur_token_len)) { + out_int (0xb53f7a68); + local_next_token (); + struct paramed_type *P = store_function_geochats_get_history (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getLocated", cur_token_len)) { + out_int (0x7f192d8f); + local_next_token (); + struct paramed_type *P = store_function_geochats_get_located (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getRecents", cur_token_len)) { + out_int (0xe1427e6f); + local_next_token (); + struct paramed_type *P = store_function_geochats_get_recents (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "geochats.search", cur_token_len)) { + out_int (0xcfcdc44d); + local_next_token (); + struct paramed_type *P = store_function_geochats_search (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "geochats.sendMedia", cur_token_len)) { + out_int (0xb8f0deff); + local_next_token (); + struct paramed_type *P = store_function_geochats_send_media (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "geochats.sendMessage", cur_token_len)) { + out_int (0x061b0044); + local_next_token (); + struct paramed_type *P = store_function_geochats_send_message (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "geochats.setTyping", cur_token_len)) { + out_int (0x08b8a729); + local_next_token (); + struct paramed_type *P = store_function_geochats_set_typing (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "help.getAppUpdate", cur_token_len)) { + out_int (0xc812ac7e); + local_next_token (); + struct paramed_type *P = store_function_help_get_app_update (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "help.getConfig", cur_token_len)) { + out_int (0xc4f9186b); + local_next_token (); + struct paramed_type *P = store_function_help_get_config (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "help.getInviteText", cur_token_len)) { + out_int (0xa4a95186); + local_next_token (); + struct paramed_type *P = store_function_help_get_invite_text (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "help.getNearestDc", cur_token_len)) { + out_int (0x1fb33026); + local_next_token (); + struct paramed_type *P = store_function_help_get_nearest_dc (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "help.getSupport", cur_token_len)) { + out_int (0x9cdf08cd); + local_next_token (); + struct paramed_type *P = store_function_help_get_support (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "help.saveAppLog", cur_token_len)) { + out_int (0x6f02f748); + local_next_token (); + struct paramed_type *P = store_function_help_save_app_log (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "initConnection", cur_token_len)) { + out_int (0x69796de9); + local_next_token (); + struct paramed_type *P = store_function_init_connection (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "invokeAfterMsg", cur_token_len)) { + out_int (0xcb9f372d); + local_next_token (); + struct paramed_type *P = store_function_invoke_after_msg (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "invokeAfterMsgs", cur_token_len)) { + out_int (0x3dc4b4f0); + local_next_token (); + struct paramed_type *P = store_function_invoke_after_msgs (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "invokeWithLayer", cur_token_len)) { + out_int (0xda9b0d0d); + local_next_token (); + struct paramed_type *P = store_function_invoke_with_layer (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "invokeWithoutUpdates", cur_token_len)) { + out_int (0xbf9459b7); + local_next_token (); + struct paramed_type *P = store_function_invoke_without_updates (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.acceptEncryption", cur_token_len)) { + out_int (0x3dbc0415); + local_next_token (); + struct paramed_type *P = store_function_messages_accept_encryption (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.addChatUser", cur_token_len)) { + out_int (0xf9a0aa09); + local_next_token (); + struct paramed_type *P = store_function_messages_add_chat_user (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.checkChatInvite", cur_token_len)) { + out_int (0x3eadb1bb); + local_next_token (); + struct paramed_type *P = store_function_messages_check_chat_invite (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.createChat", cur_token_len)) { + out_int (0x09cb126e); + local_next_token (); + struct paramed_type *P = store_function_messages_create_chat (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteChatUser", cur_token_len)) { + out_int (0xe0611f16); + local_next_token (); + struct paramed_type *P = store_function_messages_delete_chat_user (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.deleteHistory", cur_token_len)) { + out_int (0xf4f8fb61); + local_next_token (); + struct paramed_type *P = store_function_messages_delete_history (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteMessages", cur_token_len)) { + out_int (0xa5f18925); + local_next_token (); + struct paramed_type *P = store_function_messages_delete_messages (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.discardEncryption", cur_token_len)) { + out_int (0xedd923c5); + local_next_token (); + struct paramed_type *P = store_function_messages_discard_encryption (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatPhoto", cur_token_len)) { + out_int (0xca4c79d8); + local_next_token (); + struct paramed_type *P = store_function_messages_edit_chat_photo (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatTitle", cur_token_len)) { + out_int (0xdc452855); + local_next_token (); + struct paramed_type *P = store_function_messages_edit_chat_title (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.exportChatInvite", cur_token_len)) { + out_int (0x7d885289); + local_next_token (); + struct paramed_type *P = store_function_messages_export_chat_invite (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.forwardMessage", cur_token_len)) { + out_int (0x33963bf9); + local_next_token (); + struct paramed_type *P = store_function_messages_forward_message (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 24 && !memcmp (cur_token, "messages.forwardMessages", cur_token_len)) { + out_int (0x55e1728d); + local_next_token (); + struct paramed_type *P = store_function_messages_forward_messages (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 23 && !memcmp (cur_token, "messages.getAllStickers", cur_token_len)) { + out_int (0xaa3bc868); + local_next_token (); + struct paramed_type *P = store_function_messages_get_all_stickers (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.getChats", cur_token_len)) { + out_int (0x3c6aa187); + local_next_token (); + struct paramed_type *P = store_function_messages_get_chats (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getDhConfig", cur_token_len)) { + out_int (0x26cf8950); + local_next_token (); + struct paramed_type *P = store_function_messages_get_dh_config (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.getDialogs", cur_token_len)) { + out_int (0xeccf1df6); + local_next_token (); + struct paramed_type *P = store_function_messages_get_dialogs (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getFullChat", cur_token_len)) { + out_int (0x3b831c66); + local_next_token (); + struct paramed_type *P = store_function_messages_get_full_chat (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "messages.getHistory", cur_token_len)) { + out_int (0x92a1df2f); + local_next_token (); + struct paramed_type *P = store_function_messages_get_history (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getMessages", cur_token_len)) { + out_int (0x4222fa74); + local_next_token (); + struct paramed_type *P = store_function_messages_get_messages (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.getStickerSet", cur_token_len)) { + out_int (0x2619a90e); + local_next_token (); + struct paramed_type *P = store_function_messages_get_sticker_set (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.getStickers", cur_token_len)) { + out_int (0xae22e045); + local_next_token (); + struct paramed_type *P = store_function_messages_get_stickers (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.getWebPagePreview", cur_token_len)) { + out_int (0x25223e24); + local_next_token (); + struct paramed_type *P = store_function_messages_get_web_page_preview (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.importChatInvite", cur_token_len)) { + out_int (0x6c50051c); + local_next_token (); + struct paramed_type *P = store_function_messages_import_chat_invite (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.installStickerSet", cur_token_len)) { + out_int (0xefbbfae9); + local_next_token (); + struct paramed_type *P = store_function_messages_install_sticker_set (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.readEncryptedHistory", cur_token_len)) { + out_int (0x7f4b690a); + local_next_token (); + struct paramed_type *P = store_function_messages_read_encrypted_history (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.readHistory", cur_token_len)) { + out_int (0xb04f2510); + local_next_token (); + struct paramed_type *P = store_function_messages_read_history (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.readMessageContents", cur_token_len)) { + out_int (0x36a73f77); + local_next_token (); + struct paramed_type *P = store_function_messages_read_message_contents (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "messages.receivedMessages", cur_token_len)) { + out_int (0x05a954c0); + local_next_token (); + struct paramed_type *P = store_function_messages_received_messages (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.receivedQueue", cur_token_len)) { + out_int (0x55a5bb66); + local_next_token (); + struct paramed_type *P = store_function_messages_received_queue (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.requestEncryption", cur_token_len)) { + out_int (0xf64daf43); + local_next_token (); + struct paramed_type *P = store_function_messages_request_encryption (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 15 && !memcmp (cur_token, "messages.search", cur_token_len)) { + out_int (0x07e9f2ab); + local_next_token (); + struct paramed_type *P = store_function_messages_search (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendBroadcast", cur_token_len)) { + out_int (0xbf73f4da); + local_next_token (); + struct paramed_type *P = store_function_messages_send_broadcast (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendEncrypted", cur_token_len)) { + out_int (0xa9776773); + local_next_token (); + struct paramed_type *P = store_function_messages_send_encrypted (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 26 && !memcmp (cur_token, "messages.sendEncryptedFile", cur_token_len)) { + out_int (0x9a901b66); + local_next_token (); + struct paramed_type *P = store_function_messages_send_encrypted_file (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 29 && !memcmp (cur_token, "messages.sendEncryptedService", cur_token_len)) { + out_int (0x32d439a4); + local_next_token (); + struct paramed_type *P = store_function_messages_send_encrypted_service (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "messages.sendMedia", cur_token_len)) { + out_int (0xc8f16791); + local_next_token (); + struct paramed_type *P = store_function_messages_send_media (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "messages.sendMessage", cur_token_len)) { + out_int (0xfc55e6b5); + local_next_token (); + struct paramed_type *P = store_function_messages_send_message (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 27 && !memcmp (cur_token, "messages.setEncryptedTyping", cur_token_len)) { + out_int (0x791451ed); + local_next_token (); + struct paramed_type *P = store_function_messages_set_encrypted_typing (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 18 && !memcmp (cur_token, "messages.setTyping", cur_token_len)) { + out_int (0xa3825e50); + local_next_token (); + struct paramed_type *P = store_function_messages_set_typing (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "messages.startBot", cur_token_len)) { + out_int (0x1b3e0ffc); + local_next_token (); + struct paramed_type *P = store_function_messages_start_bot (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 28 && !memcmp (cur_token, "messages.uninstallStickerSet", cur_token_len)) { + out_int (0xf96e55de); + local_next_token (); + struct paramed_type *P = store_function_messages_uninstall_sticker_set (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "photos.deletePhotos", cur_token_len)) { + out_int (0x87cf7f2f); + local_next_token (); + struct paramed_type *P = store_function_photos_delete_photos (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "photos.getUserPhotos", cur_token_len)) { + out_int (0xb7ee553c); + local_next_token (); + struct paramed_type *P = store_function_photos_get_user_photos (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "photos.updateProfilePhoto", cur_token_len)) { + out_int (0xeef579a0); + local_next_token (); + struct paramed_type *P = store_function_photos_update_profile_photo (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 25 && !memcmp (cur_token, "photos.uploadProfilePhoto", cur_token_len)) { + out_int (0xd50f9c88); + local_next_token (); + struct paramed_type *P = store_function_photos_upload_profile_photo (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 13 && !memcmp (cur_token, "req_DH_params", cur_token_len)) { + out_int (0xd712e4be); + local_next_token (); + struct paramed_type *P = store_function_req_d_h_params (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 6 && !memcmp (cur_token, "req_pq", cur_token_len)) { + out_int (0x60469778); + local_next_token (); + struct paramed_type *P = store_function_req_pq (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 20 && !memcmp (cur_token, "set_client_DH_params", cur_token_len)) { + out_int (0xf5045f1f); + local_next_token (); + struct paramed_type *P = store_function_set_client_d_h_params (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 21 && !memcmp (cur_token, "updates.getDifference", cur_token_len)) { + out_int (0x0a041495); + local_next_token (); + struct paramed_type *P = store_function_updates_get_difference (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 16 && !memcmp (cur_token, "updates.getState", cur_token_len)) { + out_int (0xedd4882a); + local_next_token (); + struct paramed_type *P = store_function_updates_get_state (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "upload.getFile", cur_token_len)) { + out_int (0xe3a6cfb5); + local_next_token (); + struct paramed_type *P = store_function_upload_get_file (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 22 && !memcmp (cur_token, "upload.saveBigFilePart", cur_token_len)) { + out_int (0xde7b673d); + local_next_token (); + struct paramed_type *P = store_function_upload_save_big_file_part (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 19 && !memcmp (cur_token, "upload.saveFilePart", cur_token_len)) { + out_int (0xb304a621); + local_next_token (); + struct paramed_type *P = store_function_upload_save_file_part (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 17 && !memcmp (cur_token, "users.getFullUser", cur_token_len)) { + out_int (0xca30a5b1); + local_next_token (); + struct paramed_type *P = store_function_users_get_full_user (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + if (cur_token_len == 14 && !memcmp (cur_token, "users.getUsers", cur_token_len)) { + out_int (0x0d91a548); + local_next_token (); + struct paramed_type *P = store_function_users_get_users (); + if (!P) { return 0; } + if (cur_token_len != 1 || *cur_token != ')') { return 0; } + local_next_token (); + return P; + } + return 0; +} diff --git a/libs/tgl/src/auto/auto-store.h b/libs/tgl/src/auto/auto-store.h new file mode 100644 index 0000000000..9a7a737ad2 --- /dev/null +++ b/libs/tgl/src/auto/auto-store.h @@ -0,0 +1,848 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +#include +struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len); +int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P); +int store_constructor_account_days_t_t_l (struct paramed_type *T); +int store_constructor_audio_empty (struct paramed_type *T); +int store_constructor_audio (struct paramed_type *T); +int store_constructor_authorization (struct paramed_type *T); +int store_constructor_bool_false (struct paramed_type *T); +int store_constructor_bool_true (struct paramed_type *T); +int store_constructor_bot_command (struct paramed_type *T); +int store_constructor_bot_command_old (struct paramed_type *T); +int store_constructor_bot_info_empty (struct paramed_type *T); +int store_constructor_bot_info (struct paramed_type *T); +int store_constructor_bytes (struct paramed_type *T); +int store_constructor_chat_empty (struct paramed_type *T); +int store_constructor_chat (struct paramed_type *T); +int store_constructor_chat_forbidden (struct paramed_type *T); +int store_constructor_geo_chat (struct paramed_type *T); +int store_constructor_chat_full (struct paramed_type *T); +int store_constructor_chat_invite_already (struct paramed_type *T); +int store_constructor_chat_invite (struct paramed_type *T); +int store_constructor_chat_located (struct paramed_type *T); +int store_constructor_chat_participant (struct paramed_type *T); +int store_constructor_chat_participants_forbidden (struct paramed_type *T); +int store_constructor_chat_participants (struct paramed_type *T); +int store_constructor_chat_photo_empty (struct paramed_type *T); +int store_constructor_chat_photo (struct paramed_type *T); +int store_constructor_client_d_h_inner_data (struct paramed_type *T); +int store_constructor_config (struct paramed_type *T); +int store_constructor_contact (struct paramed_type *T); +int store_constructor_contact_blocked (struct paramed_type *T); +int store_constructor_contact_found (struct paramed_type *T); +int store_constructor_contact_link_unknown (struct paramed_type *T); +int store_constructor_contact_link_none (struct paramed_type *T); +int store_constructor_contact_link_has_phone (struct paramed_type *T); +int store_constructor_contact_link_contact (struct paramed_type *T); +int store_constructor_contact_status (struct paramed_type *T); +int store_constructor_contact_suggested (struct paramed_type *T); +int store_constructor_dc_option_l28 (struct paramed_type *T); +int store_constructor_dc_option (struct paramed_type *T); +int store_constructor_decrypted_message (struct paramed_type *T); +int store_constructor_decrypted_message_service (struct paramed_type *T); +int store_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T); +int store_constructor_decrypted_message_action_read_messages (struct paramed_type *T); +int store_constructor_decrypted_message_action_delete_messages (struct paramed_type *T); +int store_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T); +int store_constructor_decrypted_message_action_flush_history (struct paramed_type *T); +int store_constructor_decrypted_message_action_resend (struct paramed_type *T); +int store_constructor_decrypted_message_action_notify_layer (struct paramed_type *T); +int store_constructor_decrypted_message_action_typing (struct paramed_type *T); +int store_constructor_decrypted_message_action_request_key (struct paramed_type *T); +int store_constructor_decrypted_message_action_accept_key (struct paramed_type *T); +int store_constructor_decrypted_message_action_abort_key (struct paramed_type *T); +int store_constructor_decrypted_message_action_commit_key (struct paramed_type *T); +int store_constructor_decrypted_message_action_noop (struct paramed_type *T); +int store_constructor_decrypted_message_layer (struct paramed_type *T); +int store_constructor_decrypted_message_media_empty (struct paramed_type *T); +int store_constructor_decrypted_message_media_photo (struct paramed_type *T); +int store_constructor_decrypted_message_media_geo_point (struct paramed_type *T); +int store_constructor_decrypted_message_media_contact (struct paramed_type *T); +int store_constructor_decrypted_message_media_document (struct paramed_type *T); +int store_constructor_decrypted_message_media_video (struct paramed_type *T); +int store_constructor_decrypted_message_media_audio (struct paramed_type *T); +int store_constructor_decrypted_message_media_external_document (struct paramed_type *T); +int store_constructor_decrypted_message_media_video_l12 (struct paramed_type *T); +int store_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T); +int store_constructor_dialog (struct paramed_type *T); +int store_constructor_disabled_feature (struct paramed_type *T); +int store_constructor_document_empty (struct paramed_type *T); +int store_constructor_document (struct paramed_type *T); +int store_constructor_document_l19 (struct paramed_type *T); +int store_constructor_document_attribute_image_size (struct paramed_type *T); +int store_constructor_document_attribute_animated (struct paramed_type *T); +int store_constructor_document_attribute_sticker_l28 (struct paramed_type *T); +int store_constructor_document_attribute_sticker (struct paramed_type *T); +int store_constructor_document_attribute_video (struct paramed_type *T); +int store_constructor_document_attribute_audio (struct paramed_type *T); +int store_constructor_document_attribute_filename (struct paramed_type *T); +int store_constructor_double (struct paramed_type *T); +int store_constructor_encrypted_chat_empty (struct paramed_type *T); +int store_constructor_encrypted_chat_waiting (struct paramed_type *T); +int store_constructor_encrypted_chat_requested (struct paramed_type *T); +int store_constructor_encrypted_chat (struct paramed_type *T); +int store_constructor_encrypted_chat_discarded (struct paramed_type *T); +int store_constructor_encrypted_file_empty (struct paramed_type *T); +int store_constructor_encrypted_file (struct paramed_type *T); +int store_constructor_encrypted_message (struct paramed_type *T); +int store_constructor_encrypted_message_service (struct paramed_type *T); +int store_constructor_error (struct paramed_type *T); +int store_constructor_chat_invite_empty (struct paramed_type *T); +int store_constructor_chat_invite_exported (struct paramed_type *T); +int store_constructor_file_location_unavailable (struct paramed_type *T); +int store_constructor_file_location (struct paramed_type *T); +int store_constructor_geo_chat_message_empty (struct paramed_type *T); +int store_constructor_geo_chat_message (struct paramed_type *T); +int store_constructor_geo_chat_message_service (struct paramed_type *T); +int store_constructor_geo_point_empty (struct paramed_type *T); +int store_constructor_geo_point (struct paramed_type *T); +int store_constructor_imported_contact (struct paramed_type *T); +int store_constructor_input_app_event (struct paramed_type *T); +int store_constructor_input_audio_empty (struct paramed_type *T); +int store_constructor_input_audio (struct paramed_type *T); +int store_constructor_input_chat_photo_empty (struct paramed_type *T); +int store_constructor_input_chat_uploaded_photo (struct paramed_type *T); +int store_constructor_input_chat_photo (struct paramed_type *T); +int store_constructor_input_phone_contact (struct paramed_type *T); +int store_constructor_input_document_empty (struct paramed_type *T); +int store_constructor_input_document (struct paramed_type *T); +int store_constructor_input_encrypted_chat (struct paramed_type *T); +int store_constructor_input_encrypted_file_empty (struct paramed_type *T); +int store_constructor_input_encrypted_file_uploaded (struct paramed_type *T); +int store_constructor_input_encrypted_file (struct paramed_type *T); +int store_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T); +int store_constructor_input_file (struct paramed_type *T); +int store_constructor_input_file_big (struct paramed_type *T); +int store_constructor_input_file_location (struct paramed_type *T); +int store_constructor_input_video_file_location (struct paramed_type *T); +int store_constructor_input_encrypted_file_location (struct paramed_type *T); +int store_constructor_input_audio_file_location (struct paramed_type *T); +int store_constructor_input_document_file_location (struct paramed_type *T); +int store_constructor_input_geo_chat (struct paramed_type *T); +int store_constructor_input_geo_point_empty (struct paramed_type *T); +int store_constructor_input_geo_point (struct paramed_type *T); +int store_constructor_input_media_empty (struct paramed_type *T); +int store_constructor_input_media_uploaded_photo (struct paramed_type *T); +int store_constructor_input_media_photo (struct paramed_type *T); +int store_constructor_input_media_geo_point (struct paramed_type *T); +int store_constructor_input_media_contact (struct paramed_type *T); +int store_constructor_input_media_uploaded_video (struct paramed_type *T); +int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T); +int store_constructor_input_media_video (struct paramed_type *T); +int store_constructor_input_media_uploaded_audio (struct paramed_type *T); +int store_constructor_input_media_audio (struct paramed_type *T); +int store_constructor_input_media_uploaded_document (struct paramed_type *T); +int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T); +int store_constructor_input_media_document (struct paramed_type *T); +int store_constructor_input_media_venue (struct paramed_type *T); +int store_constructor_input_notify_peer (struct paramed_type *T); +int store_constructor_input_notify_users (struct paramed_type *T); +int store_constructor_input_notify_chats (struct paramed_type *T); +int store_constructor_input_notify_all (struct paramed_type *T); +int store_constructor_input_notify_geo_chat_peer (struct paramed_type *T); +int store_constructor_input_peer_empty (struct paramed_type *T); +int store_constructor_input_peer_self (struct paramed_type *T); +int store_constructor_input_peer_contact (struct paramed_type *T); +int store_constructor_input_peer_foreign (struct paramed_type *T); +int store_constructor_input_peer_chat (struct paramed_type *T); +int store_constructor_input_peer_notify_events_empty (struct paramed_type *T); +int store_constructor_input_peer_notify_events_all (struct paramed_type *T); +int store_constructor_input_peer_notify_settings (struct paramed_type *T); +int store_constructor_input_photo_empty (struct paramed_type *T); +int store_constructor_input_photo (struct paramed_type *T); +int store_constructor_input_photo_crop_auto (struct paramed_type *T); +int store_constructor_input_photo_crop (struct paramed_type *T); +int store_constructor_input_privacy_key_status_timestamp (struct paramed_type *T); +int store_constructor_input_privacy_value_allow_contacts (struct paramed_type *T); +int store_constructor_input_privacy_value_allow_all (struct paramed_type *T); +int store_constructor_input_privacy_value_allow_users (struct paramed_type *T); +int store_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T); +int store_constructor_input_privacy_value_disallow_all (struct paramed_type *T); +int store_constructor_input_privacy_value_disallow_users (struct paramed_type *T); +int store_constructor_input_sticker_set_empty (struct paramed_type *T); +int store_constructor_input_sticker_set_i_d (struct paramed_type *T); +int store_constructor_input_sticker_set_short_name (struct paramed_type *T); +int store_constructor_input_user_empty (struct paramed_type *T); +int store_constructor_input_user_self (struct paramed_type *T); +int store_constructor_input_user_contact (struct paramed_type *T); +int store_constructor_input_user_foreign (struct paramed_type *T); +int store_constructor_input_video_empty (struct paramed_type *T); +int store_constructor_input_video (struct paramed_type *T); +int store_constructor_int (struct paramed_type *T); +int store_constructor_int128 (struct paramed_type *T); +int store_constructor_int256 (struct paramed_type *T); +int store_constructor_keyboard_button (struct paramed_type *T); +int store_constructor_keyboard_button_row (struct paramed_type *T); +int store_constructor_long (struct paramed_type *T); +int store_constructor_message_empty (struct paramed_type *T); +int store_constructor_message (struct paramed_type *T); +int store_constructor_message_service (struct paramed_type *T); +int store_constructor_message_action_empty (struct paramed_type *T); +int store_constructor_message_action_chat_create (struct paramed_type *T); +int store_constructor_message_action_chat_edit_title (struct paramed_type *T); +int store_constructor_message_action_chat_edit_photo (struct paramed_type *T); +int store_constructor_message_action_chat_delete_photo (struct paramed_type *T); +int store_constructor_message_action_chat_add_user (struct paramed_type *T); +int store_constructor_message_action_chat_delete_user (struct paramed_type *T); +int store_constructor_message_action_geo_chat_create (struct paramed_type *T); +int store_constructor_message_action_geo_chat_checkin (struct paramed_type *T); +int store_constructor_message_action_chat_joined_by_link (struct paramed_type *T); +int store_constructor_message_media_empty (struct paramed_type *T); +int store_constructor_message_media_photo (struct paramed_type *T); +int store_constructor_message_media_video (struct paramed_type *T); +int store_constructor_message_media_geo (struct paramed_type *T); +int store_constructor_message_media_contact (struct paramed_type *T); +int store_constructor_message_media_unsupported (struct paramed_type *T); +int store_constructor_message_media_document (struct paramed_type *T); +int store_constructor_message_media_audio (struct paramed_type *T); +int store_constructor_message_media_web_page (struct paramed_type *T); +int store_constructor_message_media_venue (struct paramed_type *T); +int store_constructor_message_media_photo_l27 (struct paramed_type *T); +int store_constructor_message_media_video_l27 (struct paramed_type *T); +int store_constructor_input_messages_filter_empty (struct paramed_type *T); +int store_constructor_input_messages_filter_photos (struct paramed_type *T); +int store_constructor_input_messages_filter_video (struct paramed_type *T); +int store_constructor_input_messages_filter_photo_video (struct paramed_type *T); +int store_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T); +int store_constructor_input_messages_filter_document (struct paramed_type *T); +int store_constructor_input_messages_filter_audio (struct paramed_type *T); +int store_constructor_nearest_dc (struct paramed_type *T); +int store_constructor_notify_peer (struct paramed_type *T); +int store_constructor_notify_users (struct paramed_type *T); +int store_constructor_notify_chats (struct paramed_type *T); +int store_constructor_notify_all (struct paramed_type *T); +int store_constructor_null (struct paramed_type *T); +int store_constructor_p_q_inner_data (struct paramed_type *T); +int store_constructor_p_q_inner_data_temp (struct paramed_type *T); +int store_constructor_peer_user (struct paramed_type *T); +int store_constructor_peer_chat (struct paramed_type *T); +int store_constructor_peer_notify_events_empty (struct paramed_type *T); +int store_constructor_peer_notify_events_all (struct paramed_type *T); +int store_constructor_peer_notify_settings_empty (struct paramed_type *T); +int store_constructor_peer_notify_settings (struct paramed_type *T); +int store_constructor_photo_empty (struct paramed_type *T); +int store_constructor_photo (struct paramed_type *T); +int store_constructor_photo_l27 (struct paramed_type *T); +int store_constructor_photo_size_empty (struct paramed_type *T); +int store_constructor_photo_size (struct paramed_type *T); +int store_constructor_photo_cached_size (struct paramed_type *T); +int store_constructor_privacy_key_status_timestamp (struct paramed_type *T); +int store_constructor_privacy_value_allow_contacts (struct paramed_type *T); +int store_constructor_privacy_value_allow_all (struct paramed_type *T); +int store_constructor_privacy_value_allow_users (struct paramed_type *T); +int store_constructor_privacy_value_disallow_contacts (struct paramed_type *T); +int store_constructor_privacy_value_disallow_all (struct paramed_type *T); +int store_constructor_privacy_value_disallow_users (struct paramed_type *T); +int store_constructor_received_notify_message (struct paramed_type *T); +int store_constructor_reply_keyboard_hide (struct paramed_type *T); +int store_constructor_reply_keyboard_force_reply (struct paramed_type *T); +int store_constructor_reply_keyboard_markup (struct paramed_type *T); +int store_constructor_res_p_q (struct paramed_type *T); +int store_constructor_send_message_typing_action (struct paramed_type *T); +int store_constructor_send_message_cancel_action (struct paramed_type *T); +int store_constructor_send_message_record_video_action (struct paramed_type *T); +int store_constructor_send_message_upload_video_action_l27 (struct paramed_type *T); +int store_constructor_send_message_upload_video_action (struct paramed_type *T); +int store_constructor_send_message_record_audio_action (struct paramed_type *T); +int store_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T); +int store_constructor_send_message_upload_audio_action (struct paramed_type *T); +int store_constructor_send_message_upload_photo_action (struct paramed_type *T); +int store_constructor_send_message_upload_document_action_l27 (struct paramed_type *T); +int store_constructor_send_message_upload_document_action (struct paramed_type *T); +int store_constructor_send_message_geo_location_action (struct paramed_type *T); +int store_constructor_send_message_choose_contact_action (struct paramed_type *T); +int store_constructor_server_d_h_params_fail (struct paramed_type *T); +int store_constructor_server_d_h_params_ok (struct paramed_type *T); +int store_constructor_server_d_h_inner_data (struct paramed_type *T); +int store_constructor_dh_gen_ok (struct paramed_type *T); +int store_constructor_dh_gen_retry (struct paramed_type *T); +int store_constructor_dh_gen_fail (struct paramed_type *T); +int store_constructor_sticker_pack (struct paramed_type *T); +int store_constructor_sticker_set (struct paramed_type *T); +int store_constructor_string (struct paramed_type *T); +int store_constructor_update_new_message (struct paramed_type *T); +int store_constructor_update_message_i_d (struct paramed_type *T); +int store_constructor_update_delete_messages (struct paramed_type *T); +int store_constructor_update_user_typing (struct paramed_type *T); +int store_constructor_update_chat_user_typing (struct paramed_type *T); +int store_constructor_update_chat_participants (struct paramed_type *T); +int store_constructor_update_user_status (struct paramed_type *T); +int store_constructor_update_user_name (struct paramed_type *T); +int store_constructor_update_user_photo (struct paramed_type *T); +int store_constructor_update_contact_registered (struct paramed_type *T); +int store_constructor_update_contact_link (struct paramed_type *T); +int store_constructor_update_new_authorization (struct paramed_type *T); +int store_constructor_update_new_geo_chat_message (struct paramed_type *T); +int store_constructor_update_new_encrypted_message (struct paramed_type *T); +int store_constructor_update_encrypted_chat_typing (struct paramed_type *T); +int store_constructor_update_encryption (struct paramed_type *T); +int store_constructor_update_encrypted_messages_read (struct paramed_type *T); +int store_constructor_update_chat_participant_add (struct paramed_type *T); +int store_constructor_update_chat_participant_delete (struct paramed_type *T); +int store_constructor_update_dc_options (struct paramed_type *T); +int store_constructor_update_user_blocked (struct paramed_type *T); +int store_constructor_update_notify_settings (struct paramed_type *T); +int store_constructor_update_service_notification (struct paramed_type *T); +int store_constructor_update_privacy (struct paramed_type *T); +int store_constructor_update_user_phone (struct paramed_type *T); +int store_constructor_update_read_history_inbox (struct paramed_type *T); +int store_constructor_update_read_history_outbox (struct paramed_type *T); +int store_constructor_update_web_page (struct paramed_type *T); +int store_constructor_update_read_messages_contents (struct paramed_type *T); +int store_constructor_update_msg_update (struct paramed_type *T); +int store_constructor_updates_too_long (struct paramed_type *T); +int store_constructor_update_short_message (struct paramed_type *T); +int store_constructor_update_short_chat_message (struct paramed_type *T); +int store_constructor_update_short (struct paramed_type *T); +int store_constructor_updates_combined (struct paramed_type *T); +int store_constructor_updates (struct paramed_type *T); +int store_constructor_user_empty (struct paramed_type *T); +int store_constructor_user (struct paramed_type *T); +int store_constructor_user_full (struct paramed_type *T); +int store_constructor_user_profile_photo_empty (struct paramed_type *T); +int store_constructor_user_profile_photo (struct paramed_type *T); +int store_constructor_user_status_empty (struct paramed_type *T); +int store_constructor_user_status_online (struct paramed_type *T); +int store_constructor_user_status_offline (struct paramed_type *T); +int store_constructor_user_status_recently (struct paramed_type *T); +int store_constructor_user_status_last_week (struct paramed_type *T); +int store_constructor_user_status_last_month (struct paramed_type *T); +int store_constructor_vector (struct paramed_type *T); +int store_constructor_video_empty (struct paramed_type *T); +int store_constructor_video (struct paramed_type *T); +int store_constructor_video_l27 (struct paramed_type *T); +int store_constructor_wall_paper (struct paramed_type *T); +int store_constructor_wall_paper_solid (struct paramed_type *T); +int store_constructor_web_page_empty (struct paramed_type *T); +int store_constructor_web_page_pending (struct paramed_type *T); +int store_constructor_web_page (struct paramed_type *T); +int store_constructor_account_authorizations (struct paramed_type *T); +int store_constructor_account_no_password (struct paramed_type *T); +int store_constructor_account_password (struct paramed_type *T); +int store_constructor_account_password_input_settings (struct paramed_type *T); +int store_constructor_account_password_settings (struct paramed_type *T); +int store_constructor_account_privacy_rules (struct paramed_type *T); +int store_constructor_account_sent_change_phone_code (struct paramed_type *T); +int store_constructor_auth_authorization (struct paramed_type *T); +int store_constructor_auth_checked_phone (struct paramed_type *T); +int store_constructor_auth_exported_authorization (struct paramed_type *T); +int store_constructor_auth_password_recovery (struct paramed_type *T); +int store_constructor_auth_sent_code (struct paramed_type *T); +int store_constructor_auth_sent_app_code (struct paramed_type *T); +int store_constructor_binlog_encr_key (struct paramed_type *T); +int store_constructor_binlog_start (struct paramed_type *T); +int store_constructor_binlog_dc_option (struct paramed_type *T); +int store_constructor_binlog_dc_option_new (struct paramed_type *T); +int store_constructor_binlog_auth_key (struct paramed_type *T); +int store_constructor_binlog_default_dc (struct paramed_type *T); +int store_constructor_binlog_dc_signed (struct paramed_type *T); +int store_constructor_binlog_our_id (struct paramed_type *T); +int store_constructor_binlog_set_dh_params (struct paramed_type *T); +int store_constructor_binlog_set_pts (struct paramed_type *T); +int store_constructor_binlog_set_qts (struct paramed_type *T); +int store_constructor_binlog_set_date (struct paramed_type *T); +int store_constructor_binlog_set_seq (struct paramed_type *T); +int store_constructor_binlog_encr_chat_delete (struct paramed_type *T); +int store_constructor_binlog_encr_chat_new (struct paramed_type *T); +int store_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T); +int store_constructor_binlog_user_delete (struct paramed_type *T); +int store_constructor_binlog_user_new (struct paramed_type *T); +int store_constructor_binlog_chat_new (struct paramed_type *T); +int store_constructor_binlog_chat_add_participant (struct paramed_type *T); +int store_constructor_binlog_chat_del_participant (struct paramed_type *T); +int store_constructor_binlog_set_msg_id (struct paramed_type *T); +int store_constructor_binlog_message_delete (struct paramed_type *T); +int store_constructor_binlog_message_new (struct paramed_type *T); +int store_constructor_binlog_message_encr_new (struct paramed_type *T); +int store_constructor_binlog_msg_update (struct paramed_type *T); +int store_constructor_binlog_reset_authorization (struct paramed_type *T); +int store_constructor_contacts_blocked (struct paramed_type *T); +int store_constructor_contacts_blocked_slice (struct paramed_type *T); +int store_constructor_contacts_contacts_not_modified (struct paramed_type *T); +int store_constructor_contacts_contacts (struct paramed_type *T); +int store_constructor_contacts_found (struct paramed_type *T); +int store_constructor_contacts_imported_contacts (struct paramed_type *T); +int store_constructor_contacts_link (struct paramed_type *T); +int store_constructor_contacts_suggested (struct paramed_type *T); +int store_constructor_geochats_located (struct paramed_type *T); +int store_constructor_geochats_messages (struct paramed_type *T); +int store_constructor_geochats_messages_slice (struct paramed_type *T); +int store_constructor_geochats_stated_message (struct paramed_type *T); +int store_constructor_help_app_update (struct paramed_type *T); +int store_constructor_help_no_app_update (struct paramed_type *T); +int store_constructor_help_invite_text (struct paramed_type *T); +int store_constructor_help_support (struct paramed_type *T); +int store_constructor_messages_affected_history (struct paramed_type *T); +int store_constructor_messages_affected_messages (struct paramed_type *T); +int store_constructor_messages_all_stickers_not_modified (struct paramed_type *T); +int store_constructor_messages_all_stickers (struct paramed_type *T); +int store_constructor_messages_chat_full (struct paramed_type *T); +int store_constructor_messages_chats (struct paramed_type *T); +int store_constructor_messages_dh_config_not_modified (struct paramed_type *T); +int store_constructor_messages_dh_config (struct paramed_type *T); +int store_constructor_messages_dialogs (struct paramed_type *T); +int store_constructor_messages_dialogs_slice (struct paramed_type *T); +int store_constructor_messages_message_empty (struct paramed_type *T); +int store_constructor_messages_messages (struct paramed_type *T); +int store_constructor_messages_messages_slice (struct paramed_type *T); +int store_constructor_messages_sent_encrypted_message (struct paramed_type *T); +int store_constructor_messages_sent_encrypted_file (struct paramed_type *T); +int store_constructor_messages_sent_message (struct paramed_type *T); +int store_constructor_messages_sent_message_link (struct paramed_type *T); +int store_constructor_messages_sticker_set (struct paramed_type *T); +int store_constructor_messages_stickers_not_modified (struct paramed_type *T); +int store_constructor_messages_stickers (struct paramed_type *T); +int store_constructor_photos_photo (struct paramed_type *T); +int store_constructor_photos_photos (struct paramed_type *T); +int store_constructor_photos_photos_slice (struct paramed_type *T); +int store_constructor_storage_file_unknown (struct paramed_type *T); +int store_constructor_storage_file_jpeg (struct paramed_type *T); +int store_constructor_storage_file_gif (struct paramed_type *T); +int store_constructor_storage_file_png (struct paramed_type *T); +int store_constructor_storage_file_pdf (struct paramed_type *T); +int store_constructor_storage_file_mp3 (struct paramed_type *T); +int store_constructor_storage_file_mov (struct paramed_type *T); +int store_constructor_storage_file_partial (struct paramed_type *T); +int store_constructor_storage_file_mp4 (struct paramed_type *T); +int store_constructor_storage_file_webp (struct paramed_type *T); +int store_constructor_updates_difference_empty (struct paramed_type *T); +int store_constructor_updates_difference (struct paramed_type *T); +int store_constructor_updates_difference_slice (struct paramed_type *T); +int store_constructor_updates_state (struct paramed_type *T); +int store_constructor_upload_file (struct paramed_type *T); +int store_type_account_days_t_t_l (struct paramed_type *T); +int store_type_bare_account_days_t_t_l (struct paramed_type *T); +int store_type_audio (struct paramed_type *T); +int store_type_bare_audio (struct paramed_type *T); +int store_type_authorization (struct paramed_type *T); +int store_type_bare_authorization (struct paramed_type *T); +int store_type_bool (struct paramed_type *T); +int store_type_bare_bool (struct paramed_type *T); +int store_type_bot_command (struct paramed_type *T); +int store_type_bare_bot_command (struct paramed_type *T); +int store_type_bot_info (struct paramed_type *T); +int store_type_bare_bot_info (struct paramed_type *T); +int store_type_bytes (struct paramed_type *T); +int store_type_bare_bytes (struct paramed_type *T); +int store_type_chat (struct paramed_type *T); +int store_type_bare_chat (struct paramed_type *T); +int store_type_chat_full (struct paramed_type *T); +int store_type_bare_chat_full (struct paramed_type *T); +int store_type_chat_invite (struct paramed_type *T); +int store_type_bare_chat_invite (struct paramed_type *T); +int store_type_chat_located (struct paramed_type *T); +int store_type_bare_chat_located (struct paramed_type *T); +int store_type_chat_participant (struct paramed_type *T); +int store_type_bare_chat_participant (struct paramed_type *T); +int store_type_chat_participants (struct paramed_type *T); +int store_type_bare_chat_participants (struct paramed_type *T); +int store_type_chat_photo (struct paramed_type *T); +int store_type_bare_chat_photo (struct paramed_type *T); +int store_type_client_d_h_inner_data (struct paramed_type *T); +int store_type_bare_client_d_h_inner_data (struct paramed_type *T); +int store_type_config (struct paramed_type *T); +int store_type_bare_config (struct paramed_type *T); +int store_type_contact (struct paramed_type *T); +int store_type_bare_contact (struct paramed_type *T); +int store_type_contact_blocked (struct paramed_type *T); +int store_type_bare_contact_blocked (struct paramed_type *T); +int store_type_contact_found (struct paramed_type *T); +int store_type_bare_contact_found (struct paramed_type *T); +int store_type_contact_link (struct paramed_type *T); +int store_type_bare_contact_link (struct paramed_type *T); +int store_type_contact_status (struct paramed_type *T); +int store_type_bare_contact_status (struct paramed_type *T); +int store_type_contact_suggested (struct paramed_type *T); +int store_type_bare_contact_suggested (struct paramed_type *T); +int store_type_dc_option (struct paramed_type *T); +int store_type_bare_dc_option (struct paramed_type *T); +int store_type_decrypted_message (struct paramed_type *T); +int store_type_bare_decrypted_message (struct paramed_type *T); +int store_type_decrypted_message_action (struct paramed_type *T); +int store_type_bare_decrypted_message_action (struct paramed_type *T); +int store_type_decrypted_message_layer (struct paramed_type *T); +int store_type_bare_decrypted_message_layer (struct paramed_type *T); +int store_type_decrypted_message_media (struct paramed_type *T); +int store_type_bare_decrypted_message_media (struct paramed_type *T); +int store_type_dialog (struct paramed_type *T); +int store_type_bare_dialog (struct paramed_type *T); +int store_type_disabled_feature (struct paramed_type *T); +int store_type_bare_disabled_feature (struct paramed_type *T); +int store_type_document (struct paramed_type *T); +int store_type_bare_document (struct paramed_type *T); +int store_type_document_attribute (struct paramed_type *T); +int store_type_bare_document_attribute (struct paramed_type *T); +int store_type_double (struct paramed_type *T); +int store_type_bare_double (struct paramed_type *T); +int store_type_encrypted_chat (struct paramed_type *T); +int store_type_bare_encrypted_chat (struct paramed_type *T); +int store_type_encrypted_file (struct paramed_type *T); +int store_type_bare_encrypted_file (struct paramed_type *T); +int store_type_encrypted_message (struct paramed_type *T); +int store_type_bare_encrypted_message (struct paramed_type *T); +int store_type_error (struct paramed_type *T); +int store_type_bare_error (struct paramed_type *T); +int store_type_exported_chat_invite (struct paramed_type *T); +int store_type_bare_exported_chat_invite (struct paramed_type *T); +int store_type_file_location (struct paramed_type *T); +int store_type_bare_file_location (struct paramed_type *T); +int store_type_geo_chat_message (struct paramed_type *T); +int store_type_bare_geo_chat_message (struct paramed_type *T); +int store_type_geo_point (struct paramed_type *T); +int store_type_bare_geo_point (struct paramed_type *T); +int store_type_imported_contact (struct paramed_type *T); +int store_type_bare_imported_contact (struct paramed_type *T); +int store_type_input_app_event (struct paramed_type *T); +int store_type_bare_input_app_event (struct paramed_type *T); +int store_type_input_audio (struct paramed_type *T); +int store_type_bare_input_audio (struct paramed_type *T); +int store_type_input_chat_photo (struct paramed_type *T); +int store_type_bare_input_chat_photo (struct paramed_type *T); +int store_type_input_contact (struct paramed_type *T); +int store_type_bare_input_contact (struct paramed_type *T); +int store_type_input_document (struct paramed_type *T); +int store_type_bare_input_document (struct paramed_type *T); +int store_type_input_encrypted_chat (struct paramed_type *T); +int store_type_bare_input_encrypted_chat (struct paramed_type *T); +int store_type_input_encrypted_file (struct paramed_type *T); +int store_type_bare_input_encrypted_file (struct paramed_type *T); +int store_type_input_file (struct paramed_type *T); +int store_type_bare_input_file (struct paramed_type *T); +int store_type_input_file_location (struct paramed_type *T); +int store_type_bare_input_file_location (struct paramed_type *T); +int store_type_input_geo_chat (struct paramed_type *T); +int store_type_bare_input_geo_chat (struct paramed_type *T); +int store_type_input_geo_point (struct paramed_type *T); +int store_type_bare_input_geo_point (struct paramed_type *T); +int store_type_input_media (struct paramed_type *T); +int store_type_bare_input_media (struct paramed_type *T); +int store_type_input_notify_peer (struct paramed_type *T); +int store_type_bare_input_notify_peer (struct paramed_type *T); +int store_type_input_peer (struct paramed_type *T); +int store_type_bare_input_peer (struct paramed_type *T); +int store_type_input_peer_notify_events (struct paramed_type *T); +int store_type_bare_input_peer_notify_events (struct paramed_type *T); +int store_type_input_peer_notify_settings (struct paramed_type *T); +int store_type_bare_input_peer_notify_settings (struct paramed_type *T); +int store_type_input_photo (struct paramed_type *T); +int store_type_bare_input_photo (struct paramed_type *T); +int store_type_input_photo_crop (struct paramed_type *T); +int store_type_bare_input_photo_crop (struct paramed_type *T); +int store_type_input_privacy_key (struct paramed_type *T); +int store_type_bare_input_privacy_key (struct paramed_type *T); +int store_type_input_privacy_rule (struct paramed_type *T); +int store_type_bare_input_privacy_rule (struct paramed_type *T); +int store_type_input_sticker_set (struct paramed_type *T); +int store_type_bare_input_sticker_set (struct paramed_type *T); +int store_type_input_user (struct paramed_type *T); +int store_type_bare_input_user (struct paramed_type *T); +int store_type_input_video (struct paramed_type *T); +int store_type_bare_input_video (struct paramed_type *T); +int store_type_int (struct paramed_type *T); +int store_type_bare_int (struct paramed_type *T); +int store_type_int128 (struct paramed_type *T); +int store_type_bare_int128 (struct paramed_type *T); +int store_type_int256 (struct paramed_type *T); +int store_type_bare_int256 (struct paramed_type *T); +int store_type_keyboard_button (struct paramed_type *T); +int store_type_bare_keyboard_button (struct paramed_type *T); +int store_type_keyboard_button_row (struct paramed_type *T); +int store_type_bare_keyboard_button_row (struct paramed_type *T); +int store_type_long (struct paramed_type *T); +int store_type_bare_long (struct paramed_type *T); +int store_type_message (struct paramed_type *T); +int store_type_bare_message (struct paramed_type *T); +int store_type_message_action (struct paramed_type *T); +int store_type_bare_message_action (struct paramed_type *T); +int store_type_message_media (struct paramed_type *T); +int store_type_bare_message_media (struct paramed_type *T); +int store_type_messages_filter (struct paramed_type *T); +int store_type_bare_messages_filter (struct paramed_type *T); +int store_type_nearest_dc (struct paramed_type *T); +int store_type_bare_nearest_dc (struct paramed_type *T); +int store_type_notify_peer (struct paramed_type *T); +int store_type_bare_notify_peer (struct paramed_type *T); +int store_type_null (struct paramed_type *T); +int store_type_bare_null (struct paramed_type *T); +int store_type_p_q_inner_data (struct paramed_type *T); +int store_type_bare_p_q_inner_data (struct paramed_type *T); +int store_type_peer (struct paramed_type *T); +int store_type_bare_peer (struct paramed_type *T); +int store_type_peer_notify_events (struct paramed_type *T); +int store_type_bare_peer_notify_events (struct paramed_type *T); +int store_type_peer_notify_settings (struct paramed_type *T); +int store_type_bare_peer_notify_settings (struct paramed_type *T); +int store_type_photo (struct paramed_type *T); +int store_type_bare_photo (struct paramed_type *T); +int store_type_photo_size (struct paramed_type *T); +int store_type_bare_photo_size (struct paramed_type *T); +int store_type_privacy_key (struct paramed_type *T); +int store_type_bare_privacy_key (struct paramed_type *T); +int store_type_privacy_rule (struct paramed_type *T); +int store_type_bare_privacy_rule (struct paramed_type *T); +int store_type_received_notify_message (struct paramed_type *T); +int store_type_bare_received_notify_message (struct paramed_type *T); +int store_type_reply_markup (struct paramed_type *T); +int store_type_bare_reply_markup (struct paramed_type *T); +int store_type_res_p_q (struct paramed_type *T); +int store_type_bare_res_p_q (struct paramed_type *T); +int store_type_send_message_action (struct paramed_type *T); +int store_type_bare_send_message_action (struct paramed_type *T); +int store_type_server_d_h_params (struct paramed_type *T); +int store_type_bare_server_d_h_params (struct paramed_type *T); +int store_type_server_d_h_inner_data (struct paramed_type *T); +int store_type_bare_server_d_h_inner_data (struct paramed_type *T); +int store_type_set_client_d_h_params_answer (struct paramed_type *T); +int store_type_bare_set_client_d_h_params_answer (struct paramed_type *T); +int store_type_sticker_pack (struct paramed_type *T); +int store_type_bare_sticker_pack (struct paramed_type *T); +int store_type_sticker_set (struct paramed_type *T); +int store_type_bare_sticker_set (struct paramed_type *T); +int store_type_string (struct paramed_type *T); +int store_type_bare_string (struct paramed_type *T); +int store_type_update (struct paramed_type *T); +int store_type_bare_update (struct paramed_type *T); +int store_type_updates (struct paramed_type *T); +int store_type_bare_updates (struct paramed_type *T); +int store_type_user (struct paramed_type *T); +int store_type_bare_user (struct paramed_type *T); +int store_type_user_full (struct paramed_type *T); +int store_type_bare_user_full (struct paramed_type *T); +int store_type_user_profile_photo (struct paramed_type *T); +int store_type_bare_user_profile_photo (struct paramed_type *T); +int store_type_user_status (struct paramed_type *T); +int store_type_bare_user_status (struct paramed_type *T); +int store_type_vector (struct paramed_type *T); +int store_type_bare_vector (struct paramed_type *T); +int store_type_video (struct paramed_type *T); +int store_type_bare_video (struct paramed_type *T); +int store_type_wall_paper (struct paramed_type *T); +int store_type_bare_wall_paper (struct paramed_type *T); +int store_type_web_page (struct paramed_type *T); +int store_type_bare_web_page (struct paramed_type *T); +int store_type_account_authorizations (struct paramed_type *T); +int store_type_bare_account_authorizations (struct paramed_type *T); +int store_type_account_password (struct paramed_type *T); +int store_type_bare_account_password (struct paramed_type *T); +int store_type_account_password_input_settings (struct paramed_type *T); +int store_type_bare_account_password_input_settings (struct paramed_type *T); +int store_type_account_password_settings (struct paramed_type *T); +int store_type_bare_account_password_settings (struct paramed_type *T); +int store_type_account_privacy_rules (struct paramed_type *T); +int store_type_bare_account_privacy_rules (struct paramed_type *T); +int store_type_account_sent_change_phone_code (struct paramed_type *T); +int store_type_bare_account_sent_change_phone_code (struct paramed_type *T); +int store_type_auth_authorization (struct paramed_type *T); +int store_type_bare_auth_authorization (struct paramed_type *T); +int store_type_auth_checked_phone (struct paramed_type *T); +int store_type_bare_auth_checked_phone (struct paramed_type *T); +int store_type_auth_exported_authorization (struct paramed_type *T); +int store_type_bare_auth_exported_authorization (struct paramed_type *T); +int store_type_auth_password_recovery (struct paramed_type *T); +int store_type_bare_auth_password_recovery (struct paramed_type *T); +int store_type_auth_sent_code (struct paramed_type *T); +int store_type_bare_auth_sent_code (struct paramed_type *T); +int store_type_binlog_encr_key (struct paramed_type *T); +int store_type_bare_binlog_encr_key (struct paramed_type *T); +int store_type_binlog_update (struct paramed_type *T); +int store_type_bare_binlog_update (struct paramed_type *T); +int store_type_contacts_blocked (struct paramed_type *T); +int store_type_bare_contacts_blocked (struct paramed_type *T); +int store_type_contacts_contacts (struct paramed_type *T); +int store_type_bare_contacts_contacts (struct paramed_type *T); +int store_type_contacts_found (struct paramed_type *T); +int store_type_bare_contacts_found (struct paramed_type *T); +int store_type_contacts_imported_contacts (struct paramed_type *T); +int store_type_bare_contacts_imported_contacts (struct paramed_type *T); +int store_type_contacts_link (struct paramed_type *T); +int store_type_bare_contacts_link (struct paramed_type *T); +int store_type_contacts_suggested (struct paramed_type *T); +int store_type_bare_contacts_suggested (struct paramed_type *T); +int store_type_geochats_located (struct paramed_type *T); +int store_type_bare_geochats_located (struct paramed_type *T); +int store_type_geochats_messages (struct paramed_type *T); +int store_type_bare_geochats_messages (struct paramed_type *T); +int store_type_geochats_stated_message (struct paramed_type *T); +int store_type_bare_geochats_stated_message (struct paramed_type *T); +int store_type_help_app_update (struct paramed_type *T); +int store_type_bare_help_app_update (struct paramed_type *T); +int store_type_help_invite_text (struct paramed_type *T); +int store_type_bare_help_invite_text (struct paramed_type *T); +int store_type_help_support (struct paramed_type *T); +int store_type_bare_help_support (struct paramed_type *T); +int store_type_messages_affected_history (struct paramed_type *T); +int store_type_bare_messages_affected_history (struct paramed_type *T); +int store_type_messages_affected_messages (struct paramed_type *T); +int store_type_bare_messages_affected_messages (struct paramed_type *T); +int store_type_messages_all_stickers (struct paramed_type *T); +int store_type_bare_messages_all_stickers (struct paramed_type *T); +int store_type_messages_chat_full (struct paramed_type *T); +int store_type_bare_messages_chat_full (struct paramed_type *T); +int store_type_messages_chats (struct paramed_type *T); +int store_type_bare_messages_chats (struct paramed_type *T); +int store_type_messages_dh_config (struct paramed_type *T); +int store_type_bare_messages_dh_config (struct paramed_type *T); +int store_type_messages_dialogs (struct paramed_type *T); +int store_type_bare_messages_dialogs (struct paramed_type *T); +int store_type_messages_message (struct paramed_type *T); +int store_type_bare_messages_message (struct paramed_type *T); +int store_type_messages_messages (struct paramed_type *T); +int store_type_bare_messages_messages (struct paramed_type *T); +int store_type_messages_sent_encrypted_message (struct paramed_type *T); +int store_type_bare_messages_sent_encrypted_message (struct paramed_type *T); +int store_type_messages_sent_message (struct paramed_type *T); +int store_type_bare_messages_sent_message (struct paramed_type *T); +int store_type_messages_sticker_set (struct paramed_type *T); +int store_type_bare_messages_sticker_set (struct paramed_type *T); +int store_type_messages_stickers (struct paramed_type *T); +int store_type_bare_messages_stickers (struct paramed_type *T); +int store_type_photos_photo (struct paramed_type *T); +int store_type_bare_photos_photo (struct paramed_type *T); +int store_type_photos_photos (struct paramed_type *T); +int store_type_bare_photos_photos (struct paramed_type *T); +int store_type_storage_file_type (struct paramed_type *T); +int store_type_bare_storage_file_type (struct paramed_type *T); +int store_type_updates_difference (struct paramed_type *T); +int store_type_bare_updates_difference (struct paramed_type *T); +int store_type_updates_state (struct paramed_type *T); +int store_type_bare_updates_state (struct paramed_type *T); +int store_type_upload_file (struct paramed_type *T); +int store_type_bare_upload_file (struct paramed_type *T); +struct paramed_type *store_function_account_change_phone (void); +struct paramed_type *store_function_account_check_username (void); +struct paramed_type *store_function_account_delete_account (void); +struct paramed_type *store_function_account_get_account_t_t_l (void); +struct paramed_type *store_function_account_get_authorizations (void); +struct paramed_type *store_function_account_get_notify_settings (void); +struct paramed_type *store_function_account_get_password (void); +struct paramed_type *store_function_account_get_password_settings (void); +struct paramed_type *store_function_account_get_privacy (void); +struct paramed_type *store_function_account_get_wall_papers (void); +struct paramed_type *store_function_account_register_device (void); +struct paramed_type *store_function_account_reset_authorization (void); +struct paramed_type *store_function_account_reset_notify_settings (void); +struct paramed_type *store_function_account_send_change_phone_code (void); +struct paramed_type *store_function_account_set_account_t_t_l (void); +struct paramed_type *store_function_account_set_privacy (void); +struct paramed_type *store_function_account_unregister_device (void); +struct paramed_type *store_function_account_update_device_locked (void); +struct paramed_type *store_function_account_update_notify_settings (void); +struct paramed_type *store_function_account_update_password_settings (void); +struct paramed_type *store_function_account_update_profile (void); +struct paramed_type *store_function_account_update_status (void); +struct paramed_type *store_function_account_update_username (void); +struct paramed_type *store_function_auth_bind_temp_auth_key (void); +struct paramed_type *store_function_auth_check_password (void); +struct paramed_type *store_function_auth_check_phone (void); +struct paramed_type *store_function_auth_export_authorization (void); +struct paramed_type *store_function_auth_import_authorization (void); +struct paramed_type *store_function_auth_import_bot_authorization (void); +struct paramed_type *store_function_auth_log_out (void); +struct paramed_type *store_function_auth_recover_password (void); +struct paramed_type *store_function_auth_request_password_recovery (void); +struct paramed_type *store_function_auth_reset_authorizations (void); +struct paramed_type *store_function_auth_send_call (void); +struct paramed_type *store_function_auth_send_code (void); +struct paramed_type *store_function_auth_send_invites (void); +struct paramed_type *store_function_auth_send_sms (void); +struct paramed_type *store_function_auth_sign_in (void); +struct paramed_type *store_function_auth_sign_up (void); +struct paramed_type *store_function_contacts_block (void); +struct paramed_type *store_function_contacts_delete_contact (void); +struct paramed_type *store_function_contacts_delete_contacts (void); +struct paramed_type *store_function_contacts_export_card (void); +struct paramed_type *store_function_contacts_get_blocked (void); +struct paramed_type *store_function_contacts_get_contacts (void); +struct paramed_type *store_function_contacts_get_statuses (void); +struct paramed_type *store_function_contacts_get_suggested (void); +struct paramed_type *store_function_contacts_import_card (void); +struct paramed_type *store_function_contacts_import_contacts (void); +struct paramed_type *store_function_contacts_resolve_username (void); +struct paramed_type *store_function_contacts_search (void); +struct paramed_type *store_function_contacts_unblock (void); +struct paramed_type *store_function_geochats_checkin (void); +struct paramed_type *store_function_geochats_create_geo_chat (void); +struct paramed_type *store_function_geochats_edit_chat_photo (void); +struct paramed_type *store_function_geochats_edit_chat_title (void); +struct paramed_type *store_function_geochats_get_full_chat (void); +struct paramed_type *store_function_geochats_get_history (void); +struct paramed_type *store_function_geochats_get_located (void); +struct paramed_type *store_function_geochats_get_recents (void); +struct paramed_type *store_function_geochats_search (void); +struct paramed_type *store_function_geochats_send_media (void); +struct paramed_type *store_function_geochats_send_message (void); +struct paramed_type *store_function_geochats_set_typing (void); +struct paramed_type *store_function_help_get_app_update (void); +struct paramed_type *store_function_help_get_config (void); +struct paramed_type *store_function_help_get_invite_text (void); +struct paramed_type *store_function_help_get_nearest_dc (void); +struct paramed_type *store_function_help_get_support (void); +struct paramed_type *store_function_help_save_app_log (void); +struct paramed_type *store_function_init_connection (void); +struct paramed_type *store_function_invoke_after_msg (void); +struct paramed_type *store_function_invoke_after_msgs (void); +struct paramed_type *store_function_invoke_with_layer (void); +struct paramed_type *store_function_invoke_without_updates (void); +struct paramed_type *store_function_messages_accept_encryption (void); +struct paramed_type *store_function_messages_add_chat_user (void); +struct paramed_type *store_function_messages_check_chat_invite (void); +struct paramed_type *store_function_messages_create_chat (void); +struct paramed_type *store_function_messages_delete_chat_user (void); +struct paramed_type *store_function_messages_delete_history (void); +struct paramed_type *store_function_messages_delete_messages (void); +struct paramed_type *store_function_messages_discard_encryption (void); +struct paramed_type *store_function_messages_edit_chat_photo (void); +struct paramed_type *store_function_messages_edit_chat_title (void); +struct paramed_type *store_function_messages_export_chat_invite (void); +struct paramed_type *store_function_messages_forward_message (void); +struct paramed_type *store_function_messages_forward_messages (void); +struct paramed_type *store_function_messages_get_all_stickers (void); +struct paramed_type *store_function_messages_get_chats (void); +struct paramed_type *store_function_messages_get_dh_config (void); +struct paramed_type *store_function_messages_get_dialogs (void); +struct paramed_type *store_function_messages_get_full_chat (void); +struct paramed_type *store_function_messages_get_history (void); +struct paramed_type *store_function_messages_get_messages (void); +struct paramed_type *store_function_messages_get_sticker_set (void); +struct paramed_type *store_function_messages_get_stickers (void); +struct paramed_type *store_function_messages_get_web_page_preview (void); +struct paramed_type *store_function_messages_import_chat_invite (void); +struct paramed_type *store_function_messages_install_sticker_set (void); +struct paramed_type *store_function_messages_read_encrypted_history (void); +struct paramed_type *store_function_messages_read_history (void); +struct paramed_type *store_function_messages_read_message_contents (void); +struct paramed_type *store_function_messages_received_messages (void); +struct paramed_type *store_function_messages_received_queue (void); +struct paramed_type *store_function_messages_request_encryption (void); +struct paramed_type *store_function_messages_search (void); +struct paramed_type *store_function_messages_send_broadcast (void); +struct paramed_type *store_function_messages_send_encrypted (void); +struct paramed_type *store_function_messages_send_encrypted_file (void); +struct paramed_type *store_function_messages_send_encrypted_service (void); +struct paramed_type *store_function_messages_send_media (void); +struct paramed_type *store_function_messages_send_message (void); +struct paramed_type *store_function_messages_set_encrypted_typing (void); +struct paramed_type *store_function_messages_set_typing (void); +struct paramed_type *store_function_messages_start_bot (void); +struct paramed_type *store_function_messages_uninstall_sticker_set (void); +struct paramed_type *store_function_photos_delete_photos (void); +struct paramed_type *store_function_photos_get_user_photos (void); +struct paramed_type *store_function_photos_update_profile_photo (void); +struct paramed_type *store_function_photos_upload_profile_photo (void); +struct paramed_type *store_function_req_d_h_params (void); +struct paramed_type *store_function_req_pq (void); +struct paramed_type *store_function_set_client_d_h_params (void); +struct paramed_type *store_function_updates_get_difference (void); +struct paramed_type *store_function_updates_get_state (void); +struct paramed_type *store_function_upload_get_file (void); +struct paramed_type *store_function_upload_save_big_file_part (void); +struct paramed_type *store_function_upload_save_file_part (void); +struct paramed_type *store_function_users_get_full_user (void); +struct paramed_type *store_function_users_get_users (void); +int store_type_any (struct paramed_type *T); +struct paramed_type *store_function_any (void); diff --git a/libs/tgl/src/auto/auto-types.c b/libs/tgl/src/auto/auto-types.c new file mode 100644 index 0000000000..d81edf0949 --- /dev/null +++ b/libs/tgl/src/auto/auto-types.c @@ -0,0 +1,1793 @@ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +struct tl_type_descr tl_type_account_days_t_t_l = { + .name = 0xb8d0afdf, + .id = "AccountDaysTTL" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_days_t_t_l = { + .name = 0x472f5020, + .id = "Bare_AccountDaysTTL", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_audio = { + .name = 0x9fc5ec4e, + .id = "Audio" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_audio = { + .name = 0x603a13b1, + .id = "Bare_Audio", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_authorization = { + .name = 0x7bf2e6f6, + .id = "Authorization" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_authorization = { + .name = 0x840d1909, + .id = "Bare_Authorization", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bool = { + .name = 0x250be282, + .id = "Bool" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_bool = { + .name = 0xdaf41d7d, + .id = "Bare_Bool", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bot_command = { + .name = 0x75e7ea6c, + .id = "BotCommand" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_bot_command = { + .name = 0x8a181593, + .id = "Bare_BotCommand", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bot_info = { + .name = 0xb2e16f93, + .id = "BotInfo" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_bot_info = { + .name = 0x4d1e906c, + .id = "Bare_BotInfo", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bytes = { + .name = 0x0ee1379f, + .id = "Bytes" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_bytes = { + .name = 0xf11ec860, + .id = "Bare_Bytes", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat = { + .name = 0x7bd865dc, + .id = "Chat" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat = { + .name = 0x84279a23, + .id = "Bare_Chat", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_full = { + .name = 0x2e02a614, + .id = "ChatFull" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_full = { + .name = 0xd1fd59eb, + .id = "Bare_ChatFull", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_invite = { + .name = 0x94f910b1, + .id = "ChatInvite" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_invite = { + .name = 0x6b06ef4e, + .id = "Bare_ChatInvite", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_located = { + .name = 0x3631cf4c, + .id = "ChatLocated" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_located = { + .name = 0xc9ce30b3, + .id = "Bare_ChatLocated", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_participant = { + .name = 0xc8d7493e, + .id = "ChatParticipant" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_participant = { + .name = 0x3728b6c1, + .id = "Bare_ChatParticipant", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_participants = { + .name = 0x77930f9f, + .id = "ChatParticipants" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_participants = { + .name = 0x886cf060, + .id = "Bare_ChatParticipants", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_chat_photo = { + .name = 0x56922676, + .id = "ChatPhoto" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_chat_photo = { + .name = 0xa96dd989, + .id = "Bare_ChatPhoto", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_client_d_h_inner_data = { + .name = 0x6643b654, + .id = "Client_DH_Inner_Data" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_client_d_h_inner_data = { + .name = 0x99bc49ab, + .id = "Bare_Client_DH_Inner_Data", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_config = { + .name = 0x4e32b894, + .id = "Config" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_config = { + .name = 0xb1cd476b, + .id = "Bare_Config", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact = { + .name = 0xf911c994, + .id = "Contact" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact = { + .name = 0x06ee366b, + .id = "Bare_Contact", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact_blocked = { + .name = 0x561bc879, + .id = "ContactBlocked" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact_blocked = { + .name = 0xa9e43786, + .id = "Bare_ContactBlocked", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact_found = { + .name = 0xea879f95, + .id = "ContactFound" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact_found = { + .name = 0x1578606a, + .id = "Bare_ContactFound", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact_link = { + .name = 0x522fbc63, + .id = "ContactLink" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact_link = { + .name = 0xadd0439c, + .id = "Bare_ContactLink", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact_status = { + .name = 0xd3680c61, + .id = "ContactStatus" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact_status = { + .name = 0x2c97f39e, + .id = "Bare_ContactStatus", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contact_suggested = { + .name = 0x3de191a1, + .id = "ContactSuggested" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contact_suggested = { + .name = 0xc21e6e5e, + .id = "Bare_ContactSuggested", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_dc_option = { + .name = 0x2b1a62f0, + .id = "DcOption" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_dc_option = { + .name = 0xd4e59d0f, + .id = "Bare_DcOption", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_decrypted_message = { + .name = 0x535b7918, + .id = "DecryptedMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_decrypted_message = { + .name = 0xaca486e7, + .id = "Bare_DecryptedMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_decrypted_message_action = { + .name = 0x4e0eefde, + .id = "DecryptedMessageAction" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_decrypted_message_action = { + .name = 0xb1f11021, + .id = "Bare_DecryptedMessageAction", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_decrypted_message_layer = { + .name = 0x1be31789, + .id = "DecryptedMessageLayer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_decrypted_message_layer = { + .name = 0xe41ce876, + .id = "Bare_DecryptedMessageLayer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_decrypted_message_media = { + .name = 0x34e0d674, + .id = "DecryptedMessageMedia" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_decrypted_message_media = { + .name = 0xcb1f298b, + .id = "Bare_DecryptedMessageMedia", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_dialog = { + .name = 0xc1dd804a, + .id = "Dialog" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_dialog = { + .name = 0x3e227fb5, + .id = "Bare_Dialog", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_disabled_feature = { + .name = 0xae636f24, + .id = "DisabledFeature" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_disabled_feature = { + .name = 0x519c90db, + .id = "Bare_DisabledFeature", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_document = { + .name = 0x51a73418, + .id = "Document" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_document = { + .name = 0xae58cbe7, + .id = "Bare_Document", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_document_attribute = { + .name = 0x97c637a3, + .id = "DocumentAttribute" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_document_attribute = { + .name = 0x6839c85c, + .id = "Bare_DocumentAttribute", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_double = { + .name = 0x2210c154, + .id = "Double" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_double = { + .name = 0xddef3eab, + .id = "Bare_Double", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_encrypted_chat = { + .name = 0xb1718213, + .id = "EncryptedChat" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_encrypted_chat = { + .name = 0x4e8e7dec, + .id = "Bare_EncryptedChat", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_encrypted_file = { + .name = 0x886fd032, + .id = "EncryptedFile" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_encrypted_file = { + .name = 0x77902fcd, + .id = "Bare_EncryptedFile", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_encrypted_message = { + .name = 0xce6b8a1e, + .id = "EncryptedMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_encrypted_message = { + .name = 0x319475e1, + .id = "Bare_EncryptedMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_error = { + .name = 0xc4b9f9bb, + .id = "Error" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_error = { + .name = 0x3b460644, + .id = "Bare_Error", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_exported_chat_invite = { + .name = 0x95f132d5, + .id = "ExportedChatInvite" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_exported_chat_invite = { + .name = 0x6a0ecd2a, + .id = "Bare_ExportedChatInvite", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_file_location = { + .name = 0x2f8ffb30, + .id = "FileLocation" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_file_location = { + .name = 0xd07004cf, + .id = "Bare_FileLocation", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_geo_chat_message = { + .name = 0xf67b4034, + .id = "GeoChatMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_geo_chat_message = { + .name = 0x0984bfcb, + .id = "Bare_GeoChatMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_geo_point = { + .name = 0x315e0a53, + .id = "GeoPoint" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_geo_point = { + .name = 0xcea1f5ac, + .id = "Bare_GeoPoint", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_imported_contact = { + .name = 0xd0028438, + .id = "ImportedContact" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_imported_contact = { + .name = 0x2ffd7bc7, + .id = "Bare_ImportedContact", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_app_event = { + .name = 0x770656a8, + .id = "InputAppEvent" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_app_event = { + .name = 0x88f9a957, + .id = "Bare_InputAppEvent", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_audio = { + .name = 0xae8e9c7b, + .id = "InputAudio" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_audio = { + .name = 0x51716384, + .id = "Bare_InputAudio", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_chat_photo = { + .name = 0x3a60776d, + .id = "InputChatPhoto" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_chat_photo = { + .name = 0xc59f8892, + .id = "Bare_InputChatPhoto", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_contact = { + .name = 0xf392b7f4, + .id = "InputContact" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_contact = { + .name = 0x0c6d480b, + .id = "Bare_InputContact", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_document = { + .name = 0x6a8963fc, + .id = "InputDocument" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_document = { + .name = 0x95769c03, + .id = "Bare_InputDocument", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_encrypted_chat = { + .name = 0xf141b5e1, + .id = "InputEncryptedChat" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_encrypted_chat = { + .name = 0x0ebe4a1e, + .id = "Bare_InputEncryptedChat", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_encrypted_file = { + .name = 0x0b5c064f, + .id = "InputEncryptedFile" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_encrypted_file = { + .name = 0xf4a3f9b0, + .id = "Bare_InputEncryptedFile", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_file = { + .name = 0x0f60f9ca, + .id = "InputFile" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_file = { + .name = 0xf09f0635, + .id = "Bare_InputFile", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_file_location = { + .name = 0xe6daa38b, + .id = "InputFileLocation" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_file_location = { + .name = 0x19255c74, + .id = "Bare_InputFileLocation", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_geo_chat = { + .name = 0x74d456fa, + .id = "InputGeoChat" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_geo_chat = { + .name = 0x8b2ba905, + .id = "Bare_InputGeoChat", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_geo_point = { + .name = 0x17768f1f, + .id = "InputGeoPoint" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_geo_point = { + .name = 0xe88970e0, + .id = "Bare_InputGeoPoint", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_media = { + .name = 0xb32c91dd, + .id = "InputMedia" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_media = { + .name = 0x4cd36e22, + .id = "Bare_InputMedia", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_notify_peer = { + .name = 0x02b6911b, + .id = "InputNotifyPeer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_notify_peer = { + .name = 0xfd496ee4, + .id = "Bare_InputNotifyPeer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_peer = { + .name = 0x9e67268d, + .id = "InputPeer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_peer = { + .name = 0x6198d972, + .id = "Bare_InputPeer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_peer_notify_events = { + .name = 0x185a48ac, + .id = "InputPeerNotifyEvents" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_peer_notify_events = { + .name = 0xe7a5b753, + .id = "Bare_InputPeerNotifyEvents", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_peer_notify_settings = { + .name = 0x46a2ce98, + .id = "InputPeerNotifySettings" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_peer_notify_settings = { + .name = 0xb95d3167, + .id = "Bare_InputPeerNotifySettings", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_photo = { + .name = 0xe74279c9, + .id = "InputPhoto" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_photo = { + .name = 0x18bd8636, + .id = "Bare_InputPhoto", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_photo_crop = { + .name = 0x7477e321, + .id = "InputPhotoCrop" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_photo_crop = { + .name = 0x8b881cde, + .id = "Bare_InputPhotoCrop", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_privacy_key = { + .name = 0x4f96cb18, + .id = "InputPrivacyKey" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_privacy_key = { + .name = 0xb06934e7, + .id = "Bare_InputPrivacyKey", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_privacy_rule = { + .name = 0x4b815163, + .id = "InputPrivacyRule" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_privacy_rule = { + .name = 0xb47eae9c, + .id = "Bare_InputPrivacyRule", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_sticker_set = { + .name = 0xe44d415c, + .id = "InputStickerSet" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_sticker_set = { + .name = 0x1bb2bea3, + .id = "Bare_InputStickerSet", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_user = { + .name = 0xadfe0c6a, + .id = "InputUser" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_user = { + .name = 0x5201f395, + .id = "Bare_InputUser", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_input_video = { + .name = 0xbb5f7a27, + .id = "InputVideo" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_input_video = { + .name = 0x44a085d8, + .id = "Bare_InputVideo", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_int = { + .name = 0xa8509bda, + .id = "Int" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_int = { + .name = 0x57af6425, + .id = "Bare_Int", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_int128 = { + .name = 0x7d36c439, + .id = "Int128" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_int128 = { + .name = 0x82c93bc6, + .id = "Bare_Int128", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_int256 = { + .name = 0xf2c798b3, + .id = "Int256" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_int256 = { + .name = 0x0d38674c, + .id = "Bare_Int256", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_keyboard_button = { + .name = 0xa2fa4880, + .id = "KeyboardButton" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_keyboard_button = { + .name = 0x5d05b77f, + .id = "Bare_KeyboardButton", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_keyboard_button_row = { + .name = 0x77608b83, + .id = "KeyboardButtonRow" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_keyboard_button_row = { + .name = 0x889f747c, + .id = "Bare_KeyboardButtonRow", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_long = { + .name = 0x22076cba, + .id = "Long" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_long = { + .name = 0xddf89345, + .id = "Bare_Long", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_message = { + .name = 0x5d652a7f, + .id = "Message" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_message = { + .name = 0xa29ad580, + .id = "Bare_Message", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_message_action = { + .name = 0x383415fa, + .id = "MessageAction" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_message_action = { + .name = 0xc7cbea05, + .id = "Bare_MessageAction", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_message_media = { + .name = 0x95f2471a, + .id = "MessageMedia" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_message_media = { + .name = 0x6a0db8e5, + .id = "Bare_MessageMedia", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_filter = { + .name = 0x80895ae0, + .id = "MessagesFilter" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_filter = { + .name = 0x7f76a51f, + .id = "Bare_MessagesFilter", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_nearest_dc = { + .name = 0x8e1a1775, + .id = "NearestDc" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_nearest_dc = { + .name = 0x71e5e88a, + .id = "Bare_NearestDc", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_notify_peer = { + .name = 0x9fcb8237, + .id = "NotifyPeer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_notify_peer = { + .name = 0x60347dc8, + .id = "Bare_NotifyPeer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_null = { + .name = 0x56730bcc, + .id = "Null" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_null = { + .name = 0xa98cf433, + .id = "Bare_Null", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_p_q_inner_data = { + .name = 0xbfa3de38, + .id = "P_Q_inner_data" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_p_q_inner_data = { + .name = 0x405c21c7, + .id = "Bare_P_Q_inner_data", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_peer = { + .name = 0x276159d6, + .id = "Peer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_peer = { + .name = 0xd89ea629, + .id = "Bare_Peer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_peer_notify_events = { + .name = 0xc0c8d13b, + .id = "PeerNotifyEvents" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_peer_notify_events = { + .name = 0x3f372ec4, + .id = "Bare_PeerNotifyEvents", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_peer_notify_settings = { + .name = 0xfdf894fc, + .id = "PeerNotifySettings" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_peer_notify_settings = { + .name = 0x02076b03, + .id = "Bare_PeerNotifySettings", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_photo = { + .name = 0xc207550a, + .id = "Photo" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_photo = { + .name = 0x3df8aaf5, + .id = "Bare_Photo", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_photo_size = { + .name = 0x900f60dd, + .id = "PhotoSize" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_photo_size = { + .name = 0x6ff09f22, + .id = "Bare_PhotoSize", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_privacy_key = { + .name = 0xbc2eab30, + .id = "PrivacyKey" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_privacy_key = { + .name = 0x43d154cf, + .id = "Bare_PrivacyKey", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_privacy_rule = { + .name = 0xa8638aec, + .id = "PrivacyRule" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_privacy_rule = { + .name = 0x579c7513, + .id = "Bare_PrivacyRule", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_received_notify_message = { + .name = 0xa384b779, + .id = "ReceivedNotifyMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_received_notify_message = { + .name = 0x5c7b4886, + .id = "Bare_ReceivedNotifyMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_reply_markup = { + .name = 0x612ca4a9, + .id = "ReplyMarkup" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_reply_markup = { + .name = 0x9ed35b56, + .id = "Bare_ReplyMarkup", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_res_p_q = { + .name = 0x05162463, + .id = "ResPQ" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_res_p_q = { + .name = 0xfae9db9c, + .id = "Bare_ResPQ", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_send_message_action = { + .name = 0x70541c7e, + .id = "SendMessageAction" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_send_message_action = { + .name = 0x8fabe381, + .id = "Bare_SendMessageAction", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_server_d_h_params = { + .name = 0xa9230301, + .id = "Server_DH_Params" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_server_d_h_params = { + .name = 0x56dcfcfe, + .id = "Bare_Server_DH_Params", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_server_d_h_inner_data = { + .name = 0xb5890dba, + .id = "Server_DH_inner_data" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_server_d_h_inner_data = { + .name = 0x4a76f245, + .id = "Bare_Server_DH_inner_data", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_set_client_d_h_params_answer = { + .name = 0xdb8a468f, + .id = "Set_client_DH_params_answer" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_set_client_d_h_params_answer = { + .name = 0x2475b970, + .id = "Bare_Set_client_DH_params_answer", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_sticker_pack = { + .name = 0x12b299d4, + .id = "StickerPack" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_sticker_pack = { + .name = 0xed4d662b, + .id = "Bare_StickerPack", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_sticker_set = { + .name = 0xa7a43b17, + .id = "StickerSet" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_sticker_set = { + .name = 0x585bc4e8, + .id = "Bare_StickerSet", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_string = { + .name = 0xb5286e24, + .id = "String" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_string = { + .name = 0x4ad791db, + .id = "Bare_String", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_update = { + .name = 0x2e02b27e, + .id = "Update" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_update = { + .name = 0xd1fd4d81, + .id = "Bare_Update", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_updates = { + .name = 0x22499d27, + .id = "Updates" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_updates = { + .name = 0xddb662d8, + .id = "Bare_Updates", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_user = { + .name = 0x02e6c0c8, + .id = "User" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_user = { + .name = 0xfd193f37, + .id = "Bare_User", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_user_full = { + .name = 0x5a89ac5b, + .id = "UserFull" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_user_full = { + .name = 0xa57653a4, + .id = "Bare_UserFull", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_user_profile_photo = { + .name = 0x9a486229, + .id = "UserProfilePhoto" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_user_profile_photo = { + .name = 0x65b79dd6, + .id = "Bare_UserProfilePhoto", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_user_status = { + .name = 0x76de9570, + .id = "UserStatus" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_user_status = { + .name = 0x89216a8f, + .id = "Bare_UserStatus", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_vector = { + .name = 0x1cb5c415, + .id = "Vector" +, .params_num = 1, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_vector = { + .name = 0xe34a3bea, + .id = "Bare_Vector", + .params_num = 1, + .params_types = 0 +}; +struct tl_type_descr tl_type_video = { + .name = 0x1716b174, + .id = "Video" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_video = { + .name = 0xe8e94e8b, + .id = "Bare_Video", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_wall_paper = { + .name = 0xafa14973, + .id = "WallPaper" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_wall_paper = { + .name = 0x505eb68c, + .id = "Bare_WallPaper", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_web_page = { + .name = 0x8d8c0d41, + .id = "WebPage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_web_page = { + .name = 0x7273f2be, + .id = "Bare_WebPage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_authorizations = { + .name = 0x1250abde, + .id = "account.Authorizations" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_authorizations = { + .name = 0xedaf5421, + .id = "Bare_account.Authorizations", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_password = { + .name = 0xeac2a804, + .id = "account.Password" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_password = { + .name = 0x153d57fb, + .id = "Bare_account.Password", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_password_input_settings = { + .name = 0xbcfc532c, + .id = "account.PasswordInputSettings" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_password_input_settings = { + .name = 0x4303acd3, + .id = "Bare_account.PasswordInputSettings", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_password_settings = { + .name = 0xb7b72ab3, + .id = "account.PasswordSettings" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_password_settings = { + .name = 0x4848d54c, + .id = "Bare_account.PasswordSettings", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_privacy_rules = { + .name = 0x554abb6f, + .id = "account.PrivacyRules" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_privacy_rules = { + .name = 0xaab54490, + .id = "Bare_account.PrivacyRules", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_account_sent_change_phone_code = { + .name = 0xa4f58c4c, + .id = "account.SentChangePhoneCode" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_account_sent_change_phone_code = { + .name = 0x5b0a73b3, + .id = "Bare_account.SentChangePhoneCode", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_auth_authorization = { + .name = 0xff036af1, + .id = "auth.Authorization" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_auth_authorization = { + .name = 0x00fc950e, + .id = "Bare_auth.Authorization", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_auth_checked_phone = { + .name = 0x811ea28e, + .id = "auth.CheckedPhone" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_auth_checked_phone = { + .name = 0x7ee15d71, + .id = "Bare_auth.CheckedPhone", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_auth_exported_authorization = { + .name = 0xdf969c2d, + .id = "auth.ExportedAuthorization" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_auth_exported_authorization = { + .name = 0x206963d2, + .id = "Bare_auth.ExportedAuthorization", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_auth_password_recovery = { + .name = 0x137948a5, + .id = "auth.PasswordRecovery" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_auth_password_recovery = { + .name = 0xec86b75a, + .id = "Bare_auth.PasswordRecovery", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_auth_sent_code = { + .name = 0x0cc8bc16, + .id = "auth.SentCode" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_auth_sent_code = { + .name = 0xf33743e9, + .id = "Bare_auth.SentCode", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_binlog_encr_key = { + .name = 0x0377168f, + .id = "binlog.EncrKey" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_binlog_encr_key = { + .name = 0xfc88e970, + .id = "Bare_binlog.EncrKey", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_binlog_update = { + .name = 0x66ff03a6, + .id = "binlog.Update" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_binlog_update = { + .name = 0x9900fc59, + .id = "Bare_binlog.Update", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_blocked = { + .name = 0x8c1b8fb4, + .id = "contacts.Blocked" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_blocked = { + .name = 0x73e4704b, + .id = "Bare_contacts.Blocked", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_contacts = { + .name = 0xd8c02560, + .id = "contacts.Contacts" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_contacts = { + .name = 0x273fda9f, + .id = "Bare_contacts.Contacts", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_found = { + .name = 0x0566000e, + .id = "contacts.Found" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_found = { + .name = 0xfa99fff1, + .id = "Bare_contacts.Found", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_imported_contacts = { + .name = 0xad524315, + .id = "contacts.ImportedContacts" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_imported_contacts = { + .name = 0x52adbcea, + .id = "Bare_contacts.ImportedContacts", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_link = { + .name = 0x3ace484c, + .id = "contacts.Link" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_link = { + .name = 0xc531b7b3, + .id = "Bare_contacts.Link", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_contacts_suggested = { + .name = 0x5649dcc5, + .id = "contacts.Suggested" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_contacts_suggested = { + .name = 0xa9b6233a, + .id = "Bare_contacts.Suggested", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_geochats_located = { + .name = 0x48feb267, + .id = "geochats.Located" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_geochats_located = { + .name = 0xb7014d98, + .id = "Bare_geochats.Located", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_geochats_messages = { + .name = 0x6d0a0e59, + .id = "geochats.Messages" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_geochats_messages = { + .name = 0x92f5f1a6, + .id = "Bare_geochats.Messages", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_geochats_stated_message = { + .name = 0x17b1578b, + .id = "geochats.StatedMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_geochats_stated_message = { + .name = 0xe84ea874, + .id = "Bare_geochats.StatedMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_help_app_update = { + .name = 0x4ddd9627, + .id = "help.AppUpdate" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_help_app_update = { + .name = 0xb22269d8, + .id = "Bare_help.AppUpdate", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_help_invite_text = { + .name = 0x18cb9f78, + .id = "help.InviteText" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_help_invite_text = { + .name = 0xe7346087, + .id = "Bare_help.InviteText", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_help_support = { + .name = 0x17c6b5f6, + .id = "help.Support" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_help_support = { + .name = 0xe8394a09, + .id = "Bare_help.Support", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_affected_history = { + .name = 0xb45c69d1, + .id = "messages.AffectedHistory" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_affected_history = { + .name = 0x4ba3962e, + .id = "Bare_messages.AffectedHistory", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_affected_messages = { + .name = 0x84d19185, + .id = "messages.AffectedMessages" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_affected_messages = { + .name = 0x7b2e6e7a, + .id = "Bare_messages.AffectedMessages", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_all_stickers = { + .name = 0xb485502f, + .id = "messages.AllStickers" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_all_stickers = { + .name = 0x4b7aafd0, + .id = "Bare_messages.AllStickers", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_chat_full = { + .name = 0xe5d7d19c, + .id = "messages.ChatFull" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_chat_full = { + .name = 0x1a282e63, + .id = "Bare_messages.ChatFull", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_chats = { + .name = 0x64ff9fd5, + .id = "messages.Chats" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_chats = { + .name = 0x9b00602a, + .id = "Bare_messages.Chats", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_dh_config = { + .name = 0xecc058e8, + .id = "messages.DhConfig" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_dh_config = { + .name = 0x133fa717, + .id = "Bare_messages.DhConfig", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_dialogs = { + .name = 0x645af8b3, + .id = "messages.Dialogs" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_dialogs = { + .name = 0x9ba5074c, + .id = "Bare_messages.Dialogs", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_message = { + .name = 0x3f4e0648, + .id = "messages.Message" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_message = { + .name = 0xc0b1f9b7, + .id = "Bare_messages.Message", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_messages = { + .name = 0x8735e464, + .id = "messages.Messages" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_messages = { + .name = 0x78ca1b9b, + .id = "Bare_messages.Messages", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_sent_encrypted_message = { + .name = 0xc29c7607, + .id = "messages.SentEncryptedMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_sent_encrypted_message = { + .name = 0x3d6389f8, + .id = "Bare_messages.SentEncryptedMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_sent_message = { + .name = 0x799ce190, + .id = "messages.SentMessage" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_sent_message = { + .name = 0x86631e6f, + .id = "Bare_messages.SentMessage", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_sticker_set = { + .name = 0xb60a24a6, + .id = "messages.StickerSet" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_sticker_set = { + .name = 0x49f5db59, + .id = "Bare_messages.StickerSet", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_messages_stickers = { + .name = 0x7bfa5710, + .id = "messages.Stickers" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_messages_stickers = { + .name = 0x8405a8ef, + .id = "Bare_messages.Stickers", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_photos_photo = { + .name = 0x20212ca8, + .id = "photos.Photo" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_photos_photo = { + .name = 0xdfded357, + .id = "Bare_photos.Photo", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_photos_photos = { + .name = 0x98cf75f1, + .id = "photos.Photos" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_photos_photos = { + .name = 0x67308a0e, + .id = "Bare_photos.Photos", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_storage_file_type = { + .name = 0x3e2838a8, + .id = "storage.FileType" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_storage_file_type = { + .name = 0xc1d7c757, + .id = "Bare_storage.FileType", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_updates_difference = { + .name = 0xf57a2419, + .id = "updates.Difference" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_updates_difference = { + .name = 0x0a85dbe6, + .id = "Bare_updates.Difference", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_updates_state = { + .name = 0xa56c2a3e, + .id = "updates.State" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_updates_state = { + .name = 0x5a93d5c1, + .id = "Bare_updates.State", + .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_upload_file = { + .name = 0x096a18d5, + .id = "upload.File" +, .params_num = 0, + .params_types = 0 +}; +struct tl_type_descr tl_type_bare_upload_file = { + .name = 0xf695e72a, + .id = "Bare_upload.File", + .params_num = 0, + .params_types = 0 +}; diff --git a/libs/tgl/src/auto/auto-types.h b/libs/tgl/src/auto/auto-types.h new file mode 100644 index 0000000000..74e8de9039 --- /dev/null +++ b/libs/tgl/src/auto/auto-types.h @@ -0,0 +1,1589 @@ +#ifndef __AUTO_TYPES_H__ +#define __AUTO_TYPES_H__ +#ifdef _MSC_VER +#include "..\auto.h" +#else +#include "auto.h" +#endif +extern struct tl_type_descr tl_type_account_days_t_t_l; +extern struct tl_type_descr tl_type_bare_account_days_t_t_l; +extern struct tl_type_descr tl_type_audio; +extern struct tl_type_descr tl_type_bare_audio; +extern struct tl_type_descr tl_type_authorization; +extern struct tl_type_descr tl_type_bare_authorization; +extern struct tl_type_descr tl_type_bool; +extern struct tl_type_descr tl_type_bare_bool; +extern struct tl_type_descr tl_type_bot_command; +extern struct tl_type_descr tl_type_bare_bot_command; +extern struct tl_type_descr tl_type_bot_info; +extern struct tl_type_descr tl_type_bare_bot_info; +extern struct tl_type_descr tl_type_bytes; +extern struct tl_type_descr tl_type_bare_bytes; +extern struct tl_type_descr tl_type_chat; +extern struct tl_type_descr tl_type_bare_chat; +extern struct tl_type_descr tl_type_chat_full; +extern struct tl_type_descr tl_type_bare_chat_full; +extern struct tl_type_descr tl_type_chat_invite; +extern struct tl_type_descr tl_type_bare_chat_invite; +extern struct tl_type_descr tl_type_chat_located; +extern struct tl_type_descr tl_type_bare_chat_located; +extern struct tl_type_descr tl_type_chat_participant; +extern struct tl_type_descr tl_type_bare_chat_participant; +extern struct tl_type_descr tl_type_chat_participants; +extern struct tl_type_descr tl_type_bare_chat_participants; +extern struct tl_type_descr tl_type_chat_photo; +extern struct tl_type_descr tl_type_bare_chat_photo; +extern struct tl_type_descr tl_type_client_d_h_inner_data; +extern struct tl_type_descr tl_type_bare_client_d_h_inner_data; +extern struct tl_type_descr tl_type_config; +extern struct tl_type_descr tl_type_bare_config; +extern struct tl_type_descr tl_type_contact; +extern struct tl_type_descr tl_type_bare_contact; +extern struct tl_type_descr tl_type_contact_blocked; +extern struct tl_type_descr tl_type_bare_contact_blocked; +extern struct tl_type_descr tl_type_contact_found; +extern struct tl_type_descr tl_type_bare_contact_found; +extern struct tl_type_descr tl_type_contact_link; +extern struct tl_type_descr tl_type_bare_contact_link; +extern struct tl_type_descr tl_type_contact_status; +extern struct tl_type_descr tl_type_bare_contact_status; +extern struct tl_type_descr tl_type_contact_suggested; +extern struct tl_type_descr tl_type_bare_contact_suggested; +extern struct tl_type_descr tl_type_dc_option; +extern struct tl_type_descr tl_type_bare_dc_option; +extern struct tl_type_descr tl_type_decrypted_message; +extern struct tl_type_descr tl_type_bare_decrypted_message; +extern struct tl_type_descr tl_type_decrypted_message_action; +extern struct tl_type_descr tl_type_bare_decrypted_message_action; +extern struct tl_type_descr tl_type_decrypted_message_layer; +extern struct tl_type_descr tl_type_bare_decrypted_message_layer; +extern struct tl_type_descr tl_type_decrypted_message_media; +extern struct tl_type_descr tl_type_bare_decrypted_message_media; +extern struct tl_type_descr tl_type_dialog; +extern struct tl_type_descr tl_type_bare_dialog; +extern struct tl_type_descr tl_type_disabled_feature; +extern struct tl_type_descr tl_type_bare_disabled_feature; +extern struct tl_type_descr tl_type_document; +extern struct tl_type_descr tl_type_bare_document; +extern struct tl_type_descr tl_type_document_attribute; +extern struct tl_type_descr tl_type_bare_document_attribute; +extern struct tl_type_descr tl_type_double; +extern struct tl_type_descr tl_type_bare_double; +extern struct tl_type_descr tl_type_encrypted_chat; +extern struct tl_type_descr tl_type_bare_encrypted_chat; +extern struct tl_type_descr tl_type_encrypted_file; +extern struct tl_type_descr tl_type_bare_encrypted_file; +extern struct tl_type_descr tl_type_encrypted_message; +extern struct tl_type_descr tl_type_bare_encrypted_message; +extern struct tl_type_descr tl_type_error; +extern struct tl_type_descr tl_type_bare_error; +extern struct tl_type_descr tl_type_exported_chat_invite; +extern struct tl_type_descr tl_type_bare_exported_chat_invite; +extern struct tl_type_descr tl_type_file_location; +extern struct tl_type_descr tl_type_bare_file_location; +extern struct tl_type_descr tl_type_geo_chat_message; +extern struct tl_type_descr tl_type_bare_geo_chat_message; +extern struct tl_type_descr tl_type_geo_point; +extern struct tl_type_descr tl_type_bare_geo_point; +extern struct tl_type_descr tl_type_imported_contact; +extern struct tl_type_descr tl_type_bare_imported_contact; +extern struct tl_type_descr tl_type_input_app_event; +extern struct tl_type_descr tl_type_bare_input_app_event; +extern struct tl_type_descr tl_type_input_audio; +extern struct tl_type_descr tl_type_bare_input_audio; +extern struct tl_type_descr tl_type_input_chat_photo; +extern struct tl_type_descr tl_type_bare_input_chat_photo; +extern struct tl_type_descr tl_type_input_contact; +extern struct tl_type_descr tl_type_bare_input_contact; +extern struct tl_type_descr tl_type_input_document; +extern struct tl_type_descr tl_type_bare_input_document; +extern struct tl_type_descr tl_type_input_encrypted_chat; +extern struct tl_type_descr tl_type_bare_input_encrypted_chat; +extern struct tl_type_descr tl_type_input_encrypted_file; +extern struct tl_type_descr tl_type_bare_input_encrypted_file; +extern struct tl_type_descr tl_type_input_file; +extern struct tl_type_descr tl_type_bare_input_file; +extern struct tl_type_descr tl_type_input_file_location; +extern struct tl_type_descr tl_type_bare_input_file_location; +extern struct tl_type_descr tl_type_input_geo_chat; +extern struct tl_type_descr tl_type_bare_input_geo_chat; +extern struct tl_type_descr tl_type_input_geo_point; +extern struct tl_type_descr tl_type_bare_input_geo_point; +extern struct tl_type_descr tl_type_input_media; +extern struct tl_type_descr tl_type_bare_input_media; +extern struct tl_type_descr tl_type_input_notify_peer; +extern struct tl_type_descr tl_type_bare_input_notify_peer; +extern struct tl_type_descr tl_type_input_peer; +extern struct tl_type_descr tl_type_bare_input_peer; +extern struct tl_type_descr tl_type_input_peer_notify_events; +extern struct tl_type_descr tl_type_bare_input_peer_notify_events; +extern struct tl_type_descr tl_type_input_peer_notify_settings; +extern struct tl_type_descr tl_type_bare_input_peer_notify_settings; +extern struct tl_type_descr tl_type_input_photo; +extern struct tl_type_descr tl_type_bare_input_photo; +extern struct tl_type_descr tl_type_input_photo_crop; +extern struct tl_type_descr tl_type_bare_input_photo_crop; +extern struct tl_type_descr tl_type_input_privacy_key; +extern struct tl_type_descr tl_type_bare_input_privacy_key; +extern struct tl_type_descr tl_type_input_privacy_rule; +extern struct tl_type_descr tl_type_bare_input_privacy_rule; +extern struct tl_type_descr tl_type_input_sticker_set; +extern struct tl_type_descr tl_type_bare_input_sticker_set; +extern struct tl_type_descr tl_type_input_user; +extern struct tl_type_descr tl_type_bare_input_user; +extern struct tl_type_descr tl_type_input_video; +extern struct tl_type_descr tl_type_bare_input_video; +extern struct tl_type_descr tl_type_int; +extern struct tl_type_descr tl_type_bare_int; +extern struct tl_type_descr tl_type_int128; +extern struct tl_type_descr tl_type_bare_int128; +extern struct tl_type_descr tl_type_int256; +extern struct tl_type_descr tl_type_bare_int256; +extern struct tl_type_descr tl_type_keyboard_button; +extern struct tl_type_descr tl_type_bare_keyboard_button; +extern struct tl_type_descr tl_type_keyboard_button_row; +extern struct tl_type_descr tl_type_bare_keyboard_button_row; +extern struct tl_type_descr tl_type_long; +extern struct tl_type_descr tl_type_bare_long; +extern struct tl_type_descr tl_type_message; +extern struct tl_type_descr tl_type_bare_message; +extern struct tl_type_descr tl_type_message_action; +extern struct tl_type_descr tl_type_bare_message_action; +extern struct tl_type_descr tl_type_message_media; +extern struct tl_type_descr tl_type_bare_message_media; +extern struct tl_type_descr tl_type_messages_filter; +extern struct tl_type_descr tl_type_bare_messages_filter; +extern struct tl_type_descr tl_type_nearest_dc; +extern struct tl_type_descr tl_type_bare_nearest_dc; +extern struct tl_type_descr tl_type_notify_peer; +extern struct tl_type_descr tl_type_bare_notify_peer; +extern struct tl_type_descr tl_type_null; +extern struct tl_type_descr tl_type_bare_null; +extern struct tl_type_descr tl_type_p_q_inner_data; +extern struct tl_type_descr tl_type_bare_p_q_inner_data; +extern struct tl_type_descr tl_type_peer; +extern struct tl_type_descr tl_type_bare_peer; +extern struct tl_type_descr tl_type_peer_notify_events; +extern struct tl_type_descr tl_type_bare_peer_notify_events; +extern struct tl_type_descr tl_type_peer_notify_settings; +extern struct tl_type_descr tl_type_bare_peer_notify_settings; +extern struct tl_type_descr tl_type_photo; +extern struct tl_type_descr tl_type_bare_photo; +extern struct tl_type_descr tl_type_photo_size; +extern struct tl_type_descr tl_type_bare_photo_size; +extern struct tl_type_descr tl_type_privacy_key; +extern struct tl_type_descr tl_type_bare_privacy_key; +extern struct tl_type_descr tl_type_privacy_rule; +extern struct tl_type_descr tl_type_bare_privacy_rule; +extern struct tl_type_descr tl_type_received_notify_message; +extern struct tl_type_descr tl_type_bare_received_notify_message; +extern struct tl_type_descr tl_type_reply_markup; +extern struct tl_type_descr tl_type_bare_reply_markup; +extern struct tl_type_descr tl_type_res_p_q; +extern struct tl_type_descr tl_type_bare_res_p_q; +extern struct tl_type_descr tl_type_send_message_action; +extern struct tl_type_descr tl_type_bare_send_message_action; +extern struct tl_type_descr tl_type_server_d_h_params; +extern struct tl_type_descr tl_type_bare_server_d_h_params; +extern struct tl_type_descr tl_type_server_d_h_inner_data; +extern struct tl_type_descr tl_type_bare_server_d_h_inner_data; +extern struct tl_type_descr tl_type_set_client_d_h_params_answer; +extern struct tl_type_descr tl_type_bare_set_client_d_h_params_answer; +extern struct tl_type_descr tl_type_sticker_pack; +extern struct tl_type_descr tl_type_bare_sticker_pack; +extern struct tl_type_descr tl_type_sticker_set; +extern struct tl_type_descr tl_type_bare_sticker_set; +extern struct tl_type_descr tl_type_string; +extern struct tl_type_descr tl_type_bare_string; +extern struct tl_type_descr tl_type_update; +extern struct tl_type_descr tl_type_bare_update; +extern struct tl_type_descr tl_type_updates; +extern struct tl_type_descr tl_type_bare_updates; +extern struct tl_type_descr tl_type_user; +extern struct tl_type_descr tl_type_bare_user; +extern struct tl_type_descr tl_type_user_full; +extern struct tl_type_descr tl_type_bare_user_full; +extern struct tl_type_descr tl_type_user_profile_photo; +extern struct tl_type_descr tl_type_bare_user_profile_photo; +extern struct tl_type_descr tl_type_user_status; +extern struct tl_type_descr tl_type_bare_user_status; +extern struct tl_type_descr tl_type_vector; +extern struct tl_type_descr tl_type_bare_vector; +extern struct tl_type_descr tl_type_video; +extern struct tl_type_descr tl_type_bare_video; +extern struct tl_type_descr tl_type_wall_paper; +extern struct tl_type_descr tl_type_bare_wall_paper; +extern struct tl_type_descr tl_type_web_page; +extern struct tl_type_descr tl_type_bare_web_page; +extern struct tl_type_descr tl_type_account_authorizations; +extern struct tl_type_descr tl_type_bare_account_authorizations; +extern struct tl_type_descr tl_type_account_password; +extern struct tl_type_descr tl_type_bare_account_password; +extern struct tl_type_descr tl_type_account_password_input_settings; +extern struct tl_type_descr tl_type_bare_account_password_input_settings; +extern struct tl_type_descr tl_type_account_password_settings; +extern struct tl_type_descr tl_type_bare_account_password_settings; +extern struct tl_type_descr tl_type_account_privacy_rules; +extern struct tl_type_descr tl_type_bare_account_privacy_rules; +extern struct tl_type_descr tl_type_account_sent_change_phone_code; +extern struct tl_type_descr tl_type_bare_account_sent_change_phone_code; +extern struct tl_type_descr tl_type_auth_authorization; +extern struct tl_type_descr tl_type_bare_auth_authorization; +extern struct tl_type_descr tl_type_auth_checked_phone; +extern struct tl_type_descr tl_type_bare_auth_checked_phone; +extern struct tl_type_descr tl_type_auth_exported_authorization; +extern struct tl_type_descr tl_type_bare_auth_exported_authorization; +extern struct tl_type_descr tl_type_auth_password_recovery; +extern struct tl_type_descr tl_type_bare_auth_password_recovery; +extern struct tl_type_descr tl_type_auth_sent_code; +extern struct tl_type_descr tl_type_bare_auth_sent_code; +extern struct tl_type_descr tl_type_binlog_encr_key; +extern struct tl_type_descr tl_type_bare_binlog_encr_key; +extern struct tl_type_descr tl_type_binlog_update; +extern struct tl_type_descr tl_type_bare_binlog_update; +extern struct tl_type_descr tl_type_contacts_blocked; +extern struct tl_type_descr tl_type_bare_contacts_blocked; +extern struct tl_type_descr tl_type_contacts_contacts; +extern struct tl_type_descr tl_type_bare_contacts_contacts; +extern struct tl_type_descr tl_type_contacts_found; +extern struct tl_type_descr tl_type_bare_contacts_found; +extern struct tl_type_descr tl_type_contacts_imported_contacts; +extern struct tl_type_descr tl_type_bare_contacts_imported_contacts; +extern struct tl_type_descr tl_type_contacts_link; +extern struct tl_type_descr tl_type_bare_contacts_link; +extern struct tl_type_descr tl_type_contacts_suggested; +extern struct tl_type_descr tl_type_bare_contacts_suggested; +extern struct tl_type_descr tl_type_geochats_located; +extern struct tl_type_descr tl_type_bare_geochats_located; +extern struct tl_type_descr tl_type_geochats_messages; +extern struct tl_type_descr tl_type_bare_geochats_messages; +extern struct tl_type_descr tl_type_geochats_stated_message; +extern struct tl_type_descr tl_type_bare_geochats_stated_message; +extern struct tl_type_descr tl_type_help_app_update; +extern struct tl_type_descr tl_type_bare_help_app_update; +extern struct tl_type_descr tl_type_help_invite_text; +extern struct tl_type_descr tl_type_bare_help_invite_text; +extern struct tl_type_descr tl_type_help_support; +extern struct tl_type_descr tl_type_bare_help_support; +extern struct tl_type_descr tl_type_messages_affected_history; +extern struct tl_type_descr tl_type_bare_messages_affected_history; +extern struct tl_type_descr tl_type_messages_affected_messages; +extern struct tl_type_descr tl_type_bare_messages_affected_messages; +extern struct tl_type_descr tl_type_messages_all_stickers; +extern struct tl_type_descr tl_type_bare_messages_all_stickers; +extern struct tl_type_descr tl_type_messages_chat_full; +extern struct tl_type_descr tl_type_bare_messages_chat_full; +extern struct tl_type_descr tl_type_messages_chats; +extern struct tl_type_descr tl_type_bare_messages_chats; +extern struct tl_type_descr tl_type_messages_dh_config; +extern struct tl_type_descr tl_type_bare_messages_dh_config; +extern struct tl_type_descr tl_type_messages_dialogs; +extern struct tl_type_descr tl_type_bare_messages_dialogs; +extern struct tl_type_descr tl_type_messages_message; +extern struct tl_type_descr tl_type_bare_messages_message; +extern struct tl_type_descr tl_type_messages_messages; +extern struct tl_type_descr tl_type_bare_messages_messages; +extern struct tl_type_descr tl_type_messages_sent_encrypted_message; +extern struct tl_type_descr tl_type_bare_messages_sent_encrypted_message; +extern struct tl_type_descr tl_type_messages_sent_message; +extern struct tl_type_descr tl_type_bare_messages_sent_message; +extern struct tl_type_descr tl_type_messages_sticker_set; +extern struct tl_type_descr tl_type_bare_messages_sticker_set; +extern struct tl_type_descr tl_type_messages_stickers; +extern struct tl_type_descr tl_type_bare_messages_stickers; +extern struct tl_type_descr tl_type_photos_photo; +extern struct tl_type_descr tl_type_bare_photos_photo; +extern struct tl_type_descr tl_type_photos_photos; +extern struct tl_type_descr tl_type_bare_photos_photos; +extern struct tl_type_descr tl_type_storage_file_type; +extern struct tl_type_descr tl_type_bare_storage_file_type; +extern struct tl_type_descr tl_type_updates_difference; +extern struct tl_type_descr tl_type_bare_updates_difference; +extern struct tl_type_descr tl_type_updates_state; +extern struct tl_type_descr tl_type_bare_updates_state; +extern struct tl_type_descr tl_type_upload_file; +extern struct tl_type_descr tl_type_bare_upload_file; +struct tl_ds_account_days_t_t_l { + int *days; +}; +struct tl_ds_audio { + unsigned magic; + long long *id; + long long *access_hash; + int *user_id; + int *date; + int *duration; + struct tl_ds_string *mime_type; + int *size; + int *dc_id; +}; +struct tl_ds_authorization { + long long *hash; + int *flags; + struct tl_ds_string *device_model; + struct tl_ds_string *platform; + struct tl_ds_string *system_version; + int *api_id; + struct tl_ds_string *app_name; + struct tl_ds_string *app_version; + int *date_created; + int *date_active; + struct tl_ds_string *ip; + struct tl_ds_string *country; + struct tl_ds_string *region; +}; +struct tl_ds_bool { + unsigned magic; +}; +struct tl_ds_bot_command { + unsigned magic; + struct tl_ds_string *command; + struct tl_ds_string *description; + struct tl_ds_string *params; +}; +struct tl_ds_bot_info { + unsigned magic; + int *user_id; + int *version; + struct tl_ds_string *share_text; + struct tl_ds_string *description; + struct { + int *cnt; + struct tl_ds_bot_command **data; + } *commands; +}; +struct tl_ds_bytes { + int len; + char *data; +}; +struct tl_ds_chat { + unsigned magic; + int *id; + struct tl_ds_string *title; + struct tl_ds_chat_photo *photo; + int *participants_count; + int *date; + struct tl_ds_bool *left; + int *version; + long long *access_hash; + struct tl_ds_string *address; + struct tl_ds_string *venue; + struct tl_ds_geo_point *geo; + struct tl_ds_bool *checked_in; +}; +struct tl_ds_chat_full { + int *id; + struct tl_ds_chat_participants *participants; + struct tl_ds_photo *chat_photo; + struct tl_ds_peer_notify_settings *notify_settings; + struct tl_ds_exported_chat_invite *exported_invite; + struct { + int *cnt; + struct tl_ds_bot_info **data; + } *bot_info; +}; +struct tl_ds_chat_invite { + unsigned magic; + struct tl_ds_chat *chat; + struct tl_ds_string *title; +}; +struct tl_ds_chat_located { + int *chat_id; + int *distance; +}; +struct tl_ds_chat_participant { + int *user_id; + int *inviter_id; + int *date; +}; +struct tl_ds_chat_participants { + unsigned magic; + int *chat_id; + int *admin_id; + struct { + int *cnt; + struct tl_ds_chat_participant **data; + } *participants; + int *version; +}; +struct tl_ds_chat_photo { + unsigned magic; + struct tl_ds_file_location *photo_small; + struct tl_ds_file_location *photo_big; +}; +struct tl_ds_client_d_h_inner_data { + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + long long *retry_id; + struct tl_ds_string *g_b; +}; +struct tl_ds_config { + int *date; + int *expires; + struct tl_ds_bool *test_mode; + int *this_dc; + struct { + int *cnt; + struct tl_ds_dc_option **data; + } *dc_options; + int *chat_size_max; + int *broadcast_size_max; + int *forwarded_count_max; + int *online_update_period_ms; + int *offline_blur_timeout_ms; + int *offline_idle_timeout_ms; + int *online_cloud_timeout_ms; + int *notify_cloud_delay_ms; + int *notify_default_delay_ms; + int *chat_big_size; + int *push_chat_period_ms; + int *push_chat_limit; + struct { + int *cnt; + struct tl_ds_disabled_feature **data; + } *disabled_features; +}; +struct tl_ds_contact { + int *user_id; + struct tl_ds_bool *mutual; +}; +struct tl_ds_contact_blocked { + int *user_id; + int *date; +}; +struct tl_ds_contact_found { + int *user_id; +}; +struct tl_ds_contact_link { + unsigned magic; +}; +struct tl_ds_contact_status { + int *user_id; + struct tl_ds_user_status *status; +}; +struct tl_ds_contact_suggested { + int *user_id; + int *mutual_contacts; +}; +struct tl_ds_dc_option { + unsigned magic; + int *id; + struct tl_ds_string *hostname; + struct tl_ds_string *ip_address; + int *port; + int *flags; +}; +struct tl_ds_decrypted_message { + unsigned magic; + long long *random_id; + int *ttl; + struct tl_ds_string *message; + struct tl_ds_decrypted_message_media *media; + struct tl_ds_decrypted_message_action *action; +}; +struct tl_ds_decrypted_message_action { + unsigned magic; + int *ttl_seconds; + struct { + int *cnt; + long long **data; + } *random_ids; + int *start_seq_no; + int *end_seq_no; + int *layer; + struct tl_ds_send_message_action *action; + long long *exchange_id; + struct tl_ds_string *g_a; + struct tl_ds_string *g_b; + long long *key_fingerprint; +}; +struct tl_ds_decrypted_message_layer { + struct tl_ds_string *random_bytes; + int *layer; + int *in_seq_no; + int *out_seq_no; + struct tl_ds_decrypted_message *message; +}; +struct tl_ds_decrypted_message_media { + unsigned magic; + struct tl_ds_string *str_thumb; + int *thumb_w; + int *thumb_h; + int *w; + int *h; + int *size; + struct tl_ds_string *key; + struct tl_ds_string *iv; + double *latitude; + double *longitude; + struct tl_ds_string *phone_number; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + int *user_id; + struct tl_ds_string *file_name; + struct tl_ds_string *mime_type; + int *duration; + long long *id; + long long *access_hash; + int *date; + struct tl_ds_photo_size *thumb; + int *dc_id; + struct { + int *cnt; + struct tl_ds_document_attribute **data; + } *attributes; +}; +struct tl_ds_dialog { + struct tl_ds_peer *peer; + int *top_message; + int *read_inbox_max_id; + int *unread_count; + struct tl_ds_peer_notify_settings *notify_settings; +}; +struct tl_ds_disabled_feature { + struct tl_ds_string *feature; + struct tl_ds_string *description; +}; +struct tl_ds_document { + unsigned magic; + long long *id; + long long *access_hash; + int *date; + struct tl_ds_string *mime_type; + int *size; + struct tl_ds_photo_size *thumb; + int *dc_id; + struct { + int *cnt; + struct tl_ds_document_attribute **data; + } *attributes; + int *user_id; + struct tl_ds_string *file_name; +}; +struct tl_ds_document_attribute { + unsigned magic; + int *w; + int *h; + struct tl_ds_string *alt; + struct tl_ds_input_sticker_set *stickerset; + int *duration; + struct tl_ds_string *file_name; +}; +struct tl_ds_double { + int : 0; +}; +struct tl_ds_encrypted_chat { + unsigned magic; + int *id; + long long *access_hash; + int *date; + int *admin_id; + int *participant_id; + struct tl_ds_string *g_a; + struct tl_ds_string *g_a_or_b; + long long *key_fingerprint; +}; +struct tl_ds_encrypted_file { + unsigned magic; + long long *id; + long long *access_hash; + int *size; + int *dc_id; + int *key_fingerprint; +}; +struct tl_ds_encrypted_message { + unsigned magic; + long long *random_id; + int *chat_id; + int *date; + struct tl_ds_string *bytes; + struct tl_ds_encrypted_file *file; +}; +struct tl_ds_error { + int *code; + struct tl_ds_string *text; +}; +struct tl_ds_exported_chat_invite { + unsigned magic; + struct tl_ds_string *link; +}; +struct tl_ds_file_location { + unsigned magic; + long long *volume_id; + int *local_id; + long long *secret; + int *dc_id; +}; +struct tl_ds_geo_chat_message { + unsigned magic; + int *chat_id; + int *id; + int *from_id; + int *date; + struct tl_ds_string *message; + struct tl_ds_message_media *media; + struct tl_ds_message_action *action; +}; +struct tl_ds_geo_point { + unsigned magic; + double *longitude; + double *latitude; +}; +struct tl_ds_imported_contact { + int *user_id; + long long *client_id; +}; +struct tl_ds_input_app_event { + double *time; + struct tl_ds_string *type; + long long *peer; + struct tl_ds_string *data; +}; +struct tl_ds_input_audio { + unsigned magic; + long long *id; + long long *access_hash; +}; +struct tl_ds_input_chat_photo { + unsigned magic; + struct tl_ds_input_file *file; + struct tl_ds_input_photo_crop *crop; + struct tl_ds_input_photo *id; +}; +struct tl_ds_input_contact { + long long *client_id; + struct tl_ds_string *phone; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; +}; +struct tl_ds_input_document { + unsigned magic; + long long *id; + long long *access_hash; +}; +struct tl_ds_input_encrypted_chat { + int *chat_id; + long long *access_hash; +}; +struct tl_ds_input_encrypted_file { + unsigned magic; + long long *id; + int *parts; + struct tl_ds_string *md5_checksum; + int *key_fingerprint; + long long *access_hash; +}; +struct tl_ds_input_file { + unsigned magic; + long long *id; + int *parts; + struct tl_ds_string *name; + struct tl_ds_string *md5_checksum; +}; +struct tl_ds_input_file_location { + unsigned magic; + long long *volume_id; + int *local_id; + long long *secret; + long long *id; + long long *access_hash; +}; +struct tl_ds_input_geo_chat { + int *chat_id; + long long *access_hash; +}; +struct tl_ds_input_geo_point { + unsigned magic; + double *latitude; + double *longitude; +}; +struct tl_ds_input_media { + unsigned magic; + struct tl_ds_input_file *file; + struct tl_ds_string *caption; + struct tl_ds_input_photo *id; + struct tl_ds_input_geo_point *geo_point; + struct tl_ds_string *phone_number; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + int *duration; + int *w; + int *h; + struct tl_ds_input_file *thumb; + struct tl_ds_input_video *video_id; + struct tl_ds_string *mime_type; + struct tl_ds_input_audio *audio_id; + struct { + int *cnt; + struct tl_ds_document_attribute **data; + } *attributes; + struct tl_ds_input_document *document_id; + struct tl_ds_string *title; + struct tl_ds_string *address; + struct tl_ds_string *provider; + struct tl_ds_string *venue_id; +}; +struct tl_ds_input_notify_peer { + unsigned magic; + struct tl_ds_input_peer *peer; + struct tl_ds_input_geo_chat *geo_peer; +}; +struct tl_ds_input_peer { + unsigned magic; + int *user_id; + long long *access_hash; + int *chat_id; +}; +struct tl_ds_input_peer_notify_events { + unsigned magic; +}; +struct tl_ds_input_peer_notify_settings { + int *mute_until; + struct tl_ds_string *sound; + struct tl_ds_bool *show_previews; + int *events_mask; +}; +struct tl_ds_input_photo { + unsigned magic; + long long *id; + long long *access_hash; +}; +struct tl_ds_input_photo_crop { + unsigned magic; + double *crop_left; + double *crop_top; + double *crop_width; +}; +struct tl_ds_input_privacy_key { + int : 0; +}; +struct tl_ds_input_privacy_rule { + unsigned magic; + struct { + int *cnt; + struct tl_ds_input_user **data; + } *users; +}; +struct tl_ds_input_sticker_set { + unsigned magic; + long long *id; + long long *access_hash; + struct tl_ds_string *short_name; +}; +struct tl_ds_input_user { + unsigned magic; + int *user_id; + long long *access_hash; +}; +struct tl_ds_input_video { + unsigned magic; + long long *id; + long long *access_hash; +}; +struct tl_ds_int { + int : 0; +}; +struct tl_ds_int128 { + long long *f0; + long long *f1; +}; +struct tl_ds_int256 { + long long *f0; + long long *f1; + long long *f2; + long long *f3; +}; +struct tl_ds_keyboard_button { + struct tl_ds_string *text; +}; +struct tl_ds_keyboard_button_row { + struct { + int *cnt; + struct tl_ds_keyboard_button **data; + } *buttons; +}; +struct tl_ds_long { + int : 0; +}; +struct tl_ds_message { + unsigned magic; + int *id; + int *flags; + int *from_id; + struct tl_ds_peer *to_id; + int *fwd_from_id; + int *fwd_date; + int *reply_to_msg_id; + int *date; + struct tl_ds_string *message; + struct tl_ds_message_media *media; + struct tl_ds_reply_markup *reply_markup; + struct tl_ds_message_action *action; +}; +struct tl_ds_message_action { + unsigned magic; + struct tl_ds_string *title; + struct { + int *cnt; + int **data; + } *users; + struct tl_ds_photo *photo; + int *user_id; + struct tl_ds_string *address; + int *inviter_id; +}; +struct tl_ds_message_media { + unsigned magic; + struct tl_ds_photo *photo; + struct tl_ds_string *caption; + struct tl_ds_video *video; + struct tl_ds_geo_point *geo; + struct tl_ds_string *phone_number; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + int *user_id; + struct tl_ds_document *document; + struct tl_ds_audio *audio; + struct tl_ds_web_page *webpage; + struct tl_ds_string *title; + struct tl_ds_string *address; + struct tl_ds_string *provider; + struct tl_ds_string *venue_id; +}; +struct tl_ds_messages_filter { + unsigned magic; +}; +struct tl_ds_nearest_dc { + struct tl_ds_string *country; + int *this_dc; + int *nearest_dc; +}; +struct tl_ds_notify_peer { + unsigned magic; + struct tl_ds_peer *peer; +}; +struct tl_ds_null { + int : 0; +}; +struct tl_ds_p_q_inner_data { + unsigned magic; + struct tl_ds_string *pq; + struct tl_ds_string *p; + struct tl_ds_string *q; + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + struct tl_ds_int256 *new_nonce; + int *expires_in; +}; +struct tl_ds_peer { + unsigned magic; + int *user_id; + int *chat_id; +}; +struct tl_ds_peer_notify_events { + unsigned magic; +}; +struct tl_ds_peer_notify_settings { + unsigned magic; + int *mute_until; + struct tl_ds_string *sound; + struct tl_ds_bool *show_previews; + int *events_mask; +}; +struct tl_ds_photo { + unsigned magic; + long long *id; + long long *access_hash; + int *user_id; + int *date; + struct tl_ds_geo_point *geo; + struct { + int *cnt; + struct tl_ds_photo_size **data; + } *sizes; + struct tl_ds_string *caption; +}; +struct tl_ds_photo_size { + unsigned magic; + struct tl_ds_string *type; + struct tl_ds_file_location *location; + int *w; + int *h; + int *size; + struct tl_ds_string *bytes; +}; +struct tl_ds_privacy_key { + int : 0; +}; +struct tl_ds_privacy_rule { + unsigned magic; + struct { + int *cnt; + int **data; + } *users; +}; +struct tl_ds_received_notify_message { + int *id; + int *flags; +}; +struct tl_ds_reply_markup { + unsigned magic; + int *flags; + struct { + int *cnt; + struct tl_ds_keyboard_button_row **data; + } *rows; +}; +struct tl_ds_res_p_q { + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + struct tl_ds_string *pq; + struct { + int *cnt; + long long **data; + } *server_public_key_fingerprints; +}; +struct tl_ds_send_message_action { + unsigned magic; + int *progress; +}; +struct tl_ds_server_d_h_params { + unsigned magic; + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + struct tl_ds_int128 *new_nonce_hash; + struct tl_ds_string *encrypted_answer; +}; +struct tl_ds_server_d_h_inner_data { + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + int *g; + struct tl_ds_string *dh_prime; + struct tl_ds_string *g_a; + int *server_time; +}; +struct tl_ds_set_client_d_h_params_answer { + unsigned magic; + struct tl_ds_int128 *nonce; + struct tl_ds_int128 *server_nonce; + struct tl_ds_int128 *new_nonce_hash1; + struct tl_ds_int128 *new_nonce_hash2; + struct tl_ds_int128 *new_nonce_hash3; +}; +struct tl_ds_sticker_pack { + struct tl_ds_string *emoticon; + struct { + int *cnt; + long long **data; + } *documents; +}; +struct tl_ds_sticker_set { + long long *id; + long long *access_hash; + struct tl_ds_string *title; + struct tl_ds_string *short_name; +}; +struct tl_ds_string { + int len; + char *data; +}; +struct tl_ds_update { + unsigned magic; + struct tl_ds_message *message; + int *pts; + int *pts_count; + int *id; + long long *random_id; + struct { + int *cnt; + int **data; + } *messages; + int *user_id; + struct tl_ds_send_message_action *action; + int *chat_id; + struct tl_ds_chat_participants *participants; + struct tl_ds_user_status *status; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + struct tl_ds_string *username; + int *date; + struct tl_ds_user_profile_photo *photo; + struct tl_ds_bool *previous; + struct tl_ds_contact_link *my_link; + struct tl_ds_contact_link *foreign_link; + long long *auth_key_id; + struct tl_ds_string *device; + struct tl_ds_string *location; + struct tl_ds_geo_chat_message *geo_message; + struct tl_ds_encrypted_message *encr_message; + int *qts; + struct tl_ds_encrypted_chat *encr_chat; + int *max_date; + int *inviter_id; + int *version; + struct { + int *cnt; + struct tl_ds_dc_option **data; + } *dc_options; + struct tl_ds_bool *blocked; + struct tl_ds_notify_peer *notify_peer; + struct tl_ds_peer_notify_settings *notify_settings; + struct tl_ds_string *type; + struct tl_ds_string *message_text; + struct tl_ds_message_media *media; + struct tl_ds_bool *popup; + struct tl_ds_privacy_key *key; + struct { + int *cnt; + struct tl_ds_privacy_rule **data; + } *rules; + struct tl_ds_string *phone; + struct tl_ds_peer *peer; + int *max_id; + struct tl_ds_web_page *webpage; +}; +struct tl_ds_updates { + unsigned magic; + int *flags; + int *id; + int *user_id; + struct tl_ds_string *message; + int *pts; + int *pts_count; + int *date; + int *fwd_from_id; + int *fwd_date; + int *reply_to_msg_id; + int *from_id; + int *chat_id; + struct tl_ds_update *update; + struct { + int *cnt; + struct tl_ds_update **data; + } *updates; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + int *seq_start; + int *seq; +}; +struct tl_ds_user { + unsigned magic; + int *id; + int *flags; + long long *access_hash; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + struct tl_ds_string *username; + struct tl_ds_string *phone; + struct tl_ds_user_profile_photo *photo; + struct tl_ds_user_status *status; + int *bot_info_version; +}; +struct tl_ds_user_full { + struct tl_ds_user *user; + struct tl_ds_contacts_link *link; + struct tl_ds_photo *profile_photo; + struct tl_ds_peer_notify_settings *notify_settings; + struct tl_ds_bool *blocked; + struct tl_ds_bot_info *bot_info; +}; +struct tl_ds_user_profile_photo { + unsigned magic; + long long *photo_id; + struct tl_ds_file_location *photo_small; + struct tl_ds_file_location *photo_big; +}; +struct tl_ds_user_status { + unsigned magic; + int *expires; + int *was_online; +}; +struct tl_ds_vector { + int *f1; + void **f2; +}; +struct tl_ds_video { + unsigned magic; + long long *id; + long long *access_hash; + int *user_id; + int *date; + int *duration; + int *size; + struct tl_ds_photo_size *thumb; + int *dc_id; + int *w; + int *h; + struct tl_ds_string *caption; + struct tl_ds_string *mime_type; +}; +struct tl_ds_wall_paper { + unsigned magic; + int *id; + struct tl_ds_string *title; + struct { + int *cnt; + struct tl_ds_photo_size **data; + } *sizes; + int *color; + int *bg_color; +}; +struct tl_ds_web_page { + unsigned magic; + long long *id; + int *date; + int *flags; + struct tl_ds_string *url; + struct tl_ds_string *display_url; + struct tl_ds_string *type; + struct tl_ds_string *site_name; + struct tl_ds_string *title; + struct tl_ds_string *description; + struct tl_ds_photo *photo; + struct tl_ds_string *embed_url; + struct tl_ds_string *embed_type; + int *embed_width; + int *embed_height; + int *duration; + struct tl_ds_string *author; +}; +struct tl_ds_account_authorizations { + struct { + int *cnt; + struct tl_ds_authorization **data; + } *authorizations; +}; +struct tl_ds_account_password { + unsigned magic; + struct tl_ds_string *new_salt; + struct tl_ds_string *email_unconfirmed_pattern; + struct tl_ds_string *current_salt; + struct tl_ds_string *hint; + struct tl_ds_bool *has_recovery; +}; +struct tl_ds_account_password_input_settings { + int *flags; + struct tl_ds_string *new_salt; + struct tl_ds_string *new_password_hash; + struct tl_ds_string *hint; + struct tl_ds_string *email; +}; +struct tl_ds_account_password_settings { + struct tl_ds_string *email; +}; +struct tl_ds_account_privacy_rules { + struct { + int *cnt; + struct tl_ds_privacy_rule **data; + } *rules; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_account_sent_change_phone_code { + struct tl_ds_string *phone_code_hash; + int *send_call_timeout; +}; +struct tl_ds_auth_authorization { + struct tl_ds_user *user; +}; +struct tl_ds_auth_checked_phone { + struct tl_ds_bool *phone_registered; +}; +struct tl_ds_auth_exported_authorization { + int *id; + struct tl_ds_string *bytes; +}; +struct tl_ds_auth_password_recovery { + struct tl_ds_string *email_pattern; +}; +struct tl_ds_auth_sent_code { + unsigned magic; + struct tl_ds_bool *phone_registered; + struct tl_ds_string *phone_code_hash; + int *send_call_timeout; + struct tl_ds_bool *is_password; +}; +struct tl_ds_binlog_encr_key { + int **key; +}; +struct tl_ds_binlog_update { + unsigned magic; + int *dc; + struct tl_ds_string *name; + struct tl_ds_string *ip; + int *port; + int *flags; + struct tl_ds_binlog_encr_key *key; + int *id; + int *root; + struct tl_ds_binlog_encr_key *prime; + int *version; + int *pts; + int *qts; + int *date; + int *seq; + long long *access_hash; + int *admin; + int *user_id; + struct tl_ds_binlog_encr_key *g_key; + int *state; + int *ttl; + int *layer; + int *in_seq_no; + int *last_in_seq_no; + int *out_seq_no; + long long *key_fingerprint; + long long *exchange_id; + struct tl_ds_string *first_name; + struct tl_ds_string *last_name; + struct tl_ds_string *phone; + struct tl_ds_string *username; + struct tl_ds_photo *photo; + struct tl_ds_string *real_first_name; + struct tl_ds_string *real_last_name; + struct tl_ds_user_profile_photo *user_photo; + int *last_read_in; + int *last_read_out; + struct tl_ds_bot_info *bot_info; + struct tl_ds_string *title; + int *user_num; + struct { + int *cnt; + struct tl_ds_chat_participant **data; + } *participants; + struct tl_ds_chat_photo *chat_photo; + int *inviter_id; + long long *old_id; + int *new_id; + long long *lid; + int *from_id; + int *to_type; + int *to_id; + int *fwd_from_id; + int *fwd_date; + struct tl_ds_string *message; + struct tl_ds_message_media *media; + struct tl_ds_message_action *action; + int *reply_id; + struct tl_ds_reply_markup *reply_markup; + struct tl_ds_decrypted_message_media *encr_media; + struct tl_ds_decrypted_message_action *encr_action; + struct tl_ds_encrypted_file *file; +}; +struct tl_ds_contacts_blocked { + unsigned magic; + struct { + int *cnt; + struct tl_ds_contact_blocked **data; + } *blocked; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *count; +}; +struct tl_ds_contacts_contacts { + unsigned magic; + struct { + int *cnt; + struct tl_ds_contact **data; + } *contacts; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_contacts_found { + struct { + int *cnt; + struct tl_ds_contact_found **data; + } *results; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_contacts_imported_contacts { + struct { + int *cnt; + struct tl_ds_imported_contact **data; + } *imported; + struct { + int *cnt; + long long **data; + } *retry_contacts; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_contacts_link { + struct tl_ds_contact_link *my_link; + struct tl_ds_contact_link *foreign_link; + struct tl_ds_user *user; +}; +struct tl_ds_contacts_suggested { + struct { + int *cnt; + struct tl_ds_contact_suggested **data; + } *results; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_geochats_located { + struct { + int *cnt; + struct tl_ds_chat_located **data; + } *results; + struct { + int *cnt; + struct tl_ds_geo_chat_message **data; + } *messages; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_geochats_messages { + unsigned magic; + struct { + int *cnt; + struct tl_ds_geo_chat_message **data; + } *messages; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *count; +}; +struct tl_ds_geochats_stated_message { + struct tl_ds_geo_chat_message *message; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *seq; +}; +struct tl_ds_help_app_update { + unsigned magic; + int *id; + struct tl_ds_bool *critical; + struct tl_ds_string *url; + struct tl_ds_string *text; +}; +struct tl_ds_help_invite_text { + struct tl_ds_string *message; +}; +struct tl_ds_help_support { + struct tl_ds_string *phone_number; + struct tl_ds_user *user; +}; +struct tl_ds_messages_affected_history { + int *pts; + int *pts_count; + int *offset; +}; +struct tl_ds_messages_affected_messages { + int *pts; + int *pts_count; +}; +struct tl_ds_messages_all_stickers { + unsigned magic; + struct tl_ds_string *hash; + struct { + int *cnt; + struct tl_ds_sticker_pack **data; + } *packs; + struct { + int *cnt; + struct tl_ds_sticker_set **data; + } *sets; + struct { + int *cnt; + struct tl_ds_document **data; + } *documents; +}; +struct tl_ds_messages_chat_full { + struct tl_ds_chat_full *full_chat; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_messages_chats { + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; +}; +struct tl_ds_messages_dh_config { + unsigned magic; + struct tl_ds_string *random; + int *g; + struct tl_ds_string *p; + int *version; +}; +struct tl_ds_messages_dialogs { + unsigned magic; + struct { + int *cnt; + struct tl_ds_dialog **data; + } *dialogs; + struct { + int *cnt; + struct tl_ds_message **data; + } *messages; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *count; +}; +struct tl_ds_messages_message { + int : 0; +}; +struct tl_ds_messages_messages { + unsigned magic; + struct { + int *cnt; + struct tl_ds_message **data; + } *messages; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *count; +}; +struct tl_ds_messages_sent_encrypted_message { + unsigned magic; + int *date; + struct tl_ds_encrypted_file *file; +}; +struct tl_ds_messages_sent_message { + unsigned magic; + int *id; + int *date; + struct tl_ds_message_media *media; + int *pts; + int *pts_count; + struct { + int *cnt; + struct tl_ds_contacts_link **data; + } *links; + int *seq; +}; +struct tl_ds_messages_sticker_set { + struct tl_ds_sticker_set *set; + struct { + int *cnt; + struct tl_ds_sticker_pack **data; + } *packs; + struct { + int *cnt; + struct tl_ds_document **data; + } *documents; +}; +struct tl_ds_messages_stickers { + unsigned magic; + struct tl_ds_string *hash; + struct { + int *cnt; + struct tl_ds_document **data; + } *stickers; +}; +struct tl_ds_photos_photo { + struct tl_ds_photo *photo; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; +}; +struct tl_ds_photos_photos { + unsigned magic; + struct { + int *cnt; + struct tl_ds_photo **data; + } *photos; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + int *count; +}; +struct tl_ds_storage_file_type { + unsigned magic; +}; +struct tl_ds_updates_difference { + unsigned magic; + int *date; + int *seq; + struct { + int *cnt; + struct tl_ds_message **data; + } *new_messages; + struct { + int *cnt; + struct tl_ds_encrypted_message **data; + } *new_encrypted_messages; + struct { + int *cnt; + struct tl_ds_update **data; + } *other_updates; + struct { + int *cnt; + struct tl_ds_chat **data; + } *chats; + struct { + int *cnt; + struct tl_ds_user **data; + } *users; + struct tl_ds_updates_state *state; + struct tl_ds_updates_state *intermediate_state; +}; +struct tl_ds_updates_state { + int *pts; + int *qts; + int *date; + int *seq; + int *unread_count; +}; +struct tl_ds_upload_file { + struct tl_ds_storage_file_type *type; + int *mtime; + struct tl_ds_string *bytes; +}; +#endif diff --git a/libs/tgl/src/auto/constants.h b/libs/tgl/src/auto/constants.h new file mode 100644 index 0000000000..643496f2d2 --- /dev/null +++ b/libs/tgl/src/auto/constants.h @@ -0,0 +1,561 @@ +/* + This file is part of telegram-client. + + Telegram-client is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Telegram-client is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this telegram-client. If not, see . + + Copyright Vitaly Valtman 2013 +*/ +#ifndef CONSTANTS_H +#define CONSTANTS_H +#define CODE_int 0xa8509bda +#define CODE_long 0x22076cba +#define CODE_double 0x2210c154 +#define CODE_string 0xb5286e24 +#define CODE_bytes 0x0ee1379f +#define CODE_int128 0x7d36c439 +#define CODE_int256 0xf2c798b3 +#define CODE_bool_false 0xbc799737 +#define CODE_bool_true 0x997275b5 +#define CODE_vector 0x1cb5c415 +#define CODE_error 0xc4b9f9bb +#define CODE_null 0x56730bcc +#define CODE_input_peer_empty 0x7f3b18ea +#define CODE_input_peer_self 0x7da07ec9 +#define CODE_input_peer_contact 0x1023dbe8 +#define CODE_input_peer_foreign 0x9b447325 +#define CODE_input_peer_chat 0x179be863 +#define CODE_input_user_empty 0xb98886cf +#define CODE_input_user_self 0xf7c1b13f +#define CODE_input_user_contact 0x86e94f65 +#define CODE_input_user_foreign 0x655e74ff +#define CODE_input_phone_contact 0xf392b7f4 +#define CODE_input_file 0xf52ff27f +#define CODE_input_media_empty 0x9664f57f +#define CODE_input_media_uploaded_photo 0xf7aff1c0 +#define CODE_input_media_photo 0xe9bfb4f3 +#define CODE_input_media_geo_point 0xf9c44144 +#define CODE_input_media_contact 0xa6e45987 +#define CODE_input_media_uploaded_video 0xe13fd4bc +#define CODE_input_media_uploaded_thumb_video 0x96fb97dc +#define CODE_input_media_video 0x936a4ebd +#define CODE_input_chat_photo_empty 0x1ca48f57 +#define CODE_input_chat_uploaded_photo 0x94254732 +#define CODE_input_chat_photo 0xb2e1bf08 +#define CODE_input_geo_point_empty 0xe4c123d6 +#define CODE_input_geo_point 0xf3b7acc9 +#define CODE_input_photo_empty 0x1cd7bf0d +#define CODE_input_photo 0xfb95c6c4 +#define CODE_input_video_empty 0x5508ec75 +#define CODE_input_video 0xee579652 +#define CODE_input_file_location 0x14637196 +#define CODE_input_video_file_location 0x3d0364ec +#define CODE_input_photo_crop_auto 0xade6b004 +#define CODE_input_photo_crop 0xd9915325 +#define CODE_input_app_event 0x770656a8 +#define CODE_peer_user 0x9db1bc6d +#define CODE_peer_chat 0xbad0e5bb +#define CODE_storage_file_unknown 0xaa963b05 +#define CODE_storage_file_jpeg 0x007efe0e +#define CODE_storage_file_gif 0xcae1aadf +#define CODE_storage_file_png 0x0a4f63c0 +#define CODE_storage_file_pdf 0xae1e508d +#define CODE_storage_file_mp3 0x528a0677 +#define CODE_storage_file_mov 0x4b09ebbc +#define CODE_storage_file_partial 0x40bc6f52 +#define CODE_storage_file_mp4 0xb3cea0e4 +#define CODE_storage_file_webp 0x1081464c +#define CODE_file_location_unavailable 0x7c596b46 +#define CODE_file_location 0x53d69076 +#define CODE_user_empty 0x200250ba +#define CODE_user_profile_photo_empty 0x4f11bae1 +#define CODE_user_profile_photo 0xd559d8c8 +#define CODE_user_status_empty 0x09d05049 +#define CODE_user_status_online 0xedb93949 +#define CODE_user_status_offline 0x008c703f +#define CODE_chat_empty 0x9ba2d800 +#define CODE_chat 0x6e9c9bc7 +#define CODE_chat_forbidden 0xfb0ccc41 +#define CODE_chat_full 0x2e02a614 +#define CODE_chat_participant 0xc8d7493e +#define CODE_chat_participants_forbidden 0x0fd2bb8a +#define CODE_chat_participants 0x7841b415 +#define CODE_chat_photo_empty 0x37c1011c +#define CODE_chat_photo 0x6153276a +#define CODE_message_empty 0x83e5de54 +#define CODE_message 0xc3060325 +#define CODE_message_service 0x1d86f70e +#define CODE_message_media_empty 0x3ded6320 +#define CODE_message_media_photo 0x3d8ce53d +#define CODE_message_media_video 0x5bcf1675 +#define CODE_message_media_geo 0x56e0d474 +#define CODE_message_media_contact 0x5e7d2f39 +#define CODE_message_media_unsupported 0x9f84f49e +#define CODE_message_action_empty 0xb6aef7b0 +#define CODE_message_action_chat_create 0xa6638b9a +#define CODE_message_action_chat_edit_title 0xb5a1ce5a +#define CODE_message_action_chat_edit_photo 0x7fcb13a8 +#define CODE_message_action_chat_delete_photo 0x95e3fbef +#define CODE_message_action_chat_add_user 0x5e3cfc4b +#define CODE_message_action_chat_delete_user 0xb2ae9b0c +#define CODE_dialog 0xc1dd804a +#define CODE_photo_empty 0x2331b22d +#define CODE_photo 0xc3838076 +#define CODE_photo_l27 0x22b56751 +#define CODE_photo_size_empty 0x0e17e23c +#define CODE_photo_size 0x77bfb61b +#define CODE_photo_cached_size 0xe9a734fa +#define CODE_video_empty 0xc10658a8 +#define CODE_video 0xee9f4a4d +#define CODE_video_l27 0x388fa391 +#define CODE_geo_point_empty 0x1117dd5f +#define CODE_geo_point 0x2049d70c +#define CODE_auth_checked_phone 0x811ea28e +#define CODE_auth_sent_code 0xefed51d9 +#define CODE_auth_authorization 0xff036af1 +#define CODE_auth_exported_authorization 0xdf969c2d +#define CODE_input_notify_peer 0xb8bc5b0c +#define CODE_input_notify_users 0x193b4417 +#define CODE_input_notify_chats 0x4a95e84e +#define CODE_input_notify_all 0xa429b886 +#define CODE_input_peer_notify_events_empty 0xf03064d8 +#define CODE_input_peer_notify_events_all 0xe86a2c74 +#define CODE_input_peer_notify_settings 0x46a2ce98 +#define CODE_peer_notify_events_empty 0xadd53cb3 +#define CODE_peer_notify_events_all 0x6d1ded88 +#define CODE_peer_notify_settings_empty 0x70a68512 +#define CODE_peer_notify_settings 0x8d5e11ee +#define CODE_wall_paper 0xccb03657 +#define CODE_user_full 0x5a89ac5b +#define CODE_contact 0xf911c994 +#define CODE_imported_contact 0xd0028438 +#define CODE_contact_blocked 0x561bc879 +#define CODE_contact_suggested 0x3de191a1 +#define CODE_contact_status 0xd3680c61 +#define CODE_chat_located 0x3631cf4c +#define CODE_contacts_link 0x3ace484c +#define CODE_contacts_contacts_not_modified 0xb74ba9d2 +#define CODE_contacts_contacts 0x6f8b8cb2 +#define CODE_contacts_imported_contacts 0xad524315 +#define CODE_contacts_blocked 0x1c138d15 +#define CODE_contacts_blocked_slice 0x900802a1 +#define CODE_contacts_suggested 0x5649dcc5 +#define CODE_messages_dialogs 0x15ba6c40 +#define CODE_messages_dialogs_slice 0x71e094f3 +#define CODE_messages_messages 0x8c718e87 +#define CODE_messages_messages_slice 0x0b446ae3 +#define CODE_messages_message_empty 0x3f4e0648 +#define CODE_messages_sent_message 0x4c3d47f3 +#define CODE_messages_chats 0x64ff9fd5 +#define CODE_messages_chat_full 0xe5d7d19c +#define CODE_messages_affected_history 0xb45c69d1 +#define CODE_input_messages_filter_empty 0x57e2f66c +#define CODE_input_messages_filter_photos 0x9609a51c +#define CODE_input_messages_filter_video 0x9fc00e65 +#define CODE_input_messages_filter_photo_video 0x56e9f0e4 +#define CODE_input_messages_filter_photo_video_documents 0xd95e73bb +#define CODE_input_messages_filter_document 0x9eddf188 +#define CODE_input_messages_filter_audio 0xcfc87522 +#define CODE_update_new_message 0x1f2b0afd +#define CODE_update_message_i_d 0x4e90bfd6 +#define CODE_update_delete_messages 0xa20db0e5 +#define CODE_update_user_typing 0x5c486927 +#define CODE_update_chat_user_typing 0x9a65ea1f +#define CODE_update_chat_participants 0x07761198 +#define CODE_update_user_status 0x1bfbd823 +#define CODE_update_user_name 0xa7332b73 +#define CODE_update_user_photo 0x95313b0c +#define CODE_update_contact_registered 0x2575bbb9 +#define CODE_update_contact_link 0x9d2e67c5 +#define CODE_update_new_authorization 0x8f06529a +#define CODE_updates_state 0xa56c2a3e +#define CODE_updates_difference_empty 0x5d75a138 +#define CODE_updates_difference 0x00f49ca0 +#define CODE_updates_difference_slice 0xa8fb1981 +#define CODE_updates_too_long 0xe317af7e +#define CODE_update_short_message 0xed5c2127 +#define CODE_update_short_chat_message 0x52238b3c +#define CODE_update_short 0x78d4dec1 +#define CODE_updates_combined 0x725b04c3 +#define CODE_updates 0x74ae4240 +#define CODE_photos_photos 0x8dca6aa5 +#define CODE_photos_photos_slice 0x15051f54 +#define CODE_photos_photo 0x20212ca8 +#define CODE_upload_file 0x096a18d5 +#define CODE_dc_option_l28 0x2ec2a43c +#define CODE_dc_option 0x05d8c6cc +#define CODE_config 0x4e32b894 +#define CODE_nearest_dc 0x8e1a1775 +#define CODE_help_app_update 0x8987f311 +#define CODE_help_no_app_update 0xc45a6536 +#define CODE_help_invite_text 0x18cb9f78 +#define CODE_messages_sent_message_link 0x35a1a663 +#define CODE_input_geo_chat 0x74d456fa +#define CODE_input_notify_geo_chat_peer 0x4d8ddec8 +#define CODE_geo_chat 0x75eaea5a +#define CODE_geo_chat_message_empty 0x60311a9b +#define CODE_geo_chat_message 0x4505f8e1 +#define CODE_geo_chat_message_service 0xd34fa24e +#define CODE_geochats_stated_message 0x17b1578b +#define CODE_geochats_located 0x48feb267 +#define CODE_geochats_messages 0xd1526db1 +#define CODE_geochats_messages_slice 0xbc5863e8 +#define CODE_message_action_geo_chat_create 0x6f038ebc +#define CODE_message_action_geo_chat_checkin 0x0c7d53de +#define CODE_update_new_geo_chat_message 0x5a68e3f7 +#define CODE_wall_paper_solid 0x63117f24 +#define CODE_update_new_encrypted_message 0x12bcbd9a +#define CODE_update_encrypted_chat_typing 0x1710f156 +#define CODE_update_encryption 0xb4a2e88d +#define CODE_update_encrypted_messages_read 0x38fe25b7 +#define CODE_encrypted_chat_empty 0xab7ec0a0 +#define CODE_encrypted_chat_waiting 0x3bf703dc +#define CODE_encrypted_chat_requested 0xc878527e +#define CODE_encrypted_chat 0xfa56ce36 +#define CODE_encrypted_chat_discarded 0x13d6dd27 +#define CODE_input_encrypted_chat 0xf141b5e1 +#define CODE_encrypted_file_empty 0xc21f497e +#define CODE_encrypted_file 0x4a70994c +#define CODE_input_encrypted_file_empty 0x1837c364 +#define CODE_input_encrypted_file_uploaded 0x64bd0306 +#define CODE_input_encrypted_file 0x5a17b5e5 +#define CODE_input_encrypted_file_location 0xf5235d55 +#define CODE_encrypted_message 0xed18c118 +#define CODE_encrypted_message_service 0x23734b06 +#define CODE_messages_dh_config_not_modified 0xc0e24635 +#define CODE_messages_dh_config 0x2c221edd +#define CODE_messages_sent_encrypted_message 0x560f8935 +#define CODE_messages_sent_encrypted_file 0x9493ff32 +#define CODE_input_file_big 0xfa4f0bb5 +#define CODE_input_encrypted_file_big_uploaded 0x2dc173c8 +#define CODE_update_chat_participant_add 0x3a0eeb22 +#define CODE_update_chat_participant_delete 0x6e5f8c22 +#define CODE_update_dc_options 0x8e5e9873 +#define CODE_input_media_uploaded_audio 0x4e498cab +#define CODE_input_media_audio 0x89938781 +#define CODE_input_media_uploaded_document 0xffe76b78 +#define CODE_input_media_uploaded_thumb_document 0x41481486 +#define CODE_input_media_document 0xd184e841 +#define CODE_message_media_document 0x2fda2204 +#define CODE_message_media_audio 0xc6b68300 +#define CODE_input_audio_empty 0xd95adc84 +#define CODE_input_audio 0x77d440ff +#define CODE_input_document_empty 0x72f0eaae +#define CODE_input_document 0x18798952 +#define CODE_input_audio_file_location 0x74dc404d +#define CODE_input_document_file_location 0x4e45abe9 +#define CODE_audio_empty 0x586988d8 +#define CODE_audio 0xc7ac6496 +#define CODE_document_empty 0x36f8c871 +#define CODE_document 0xf9a39f4f +#define CODE_document_l19 0x9efc6326 +#define CODE_help_support 0x17c6b5f6 +#define CODE_notify_peer 0x9fd40bd8 +#define CODE_notify_users 0xb4c83b4c +#define CODE_notify_chats 0xc007cec3 +#define CODE_notify_all 0x74d07c60 +#define CODE_update_user_blocked 0x80ece81a +#define CODE_update_notify_settings 0xbec268ef +#define CODE_auth_sent_app_code 0xe325edcf +#define CODE_send_message_typing_action 0x16bf744e +#define CODE_send_message_cancel_action 0xfd5ec8f5 +#define CODE_send_message_record_video_action 0xa187d66f +#define CODE_send_message_upload_video_action_l27 0x92042ff7 +#define CODE_send_message_upload_video_action 0xe9763aec +#define CODE_send_message_record_audio_action 0xd52f73f7 +#define CODE_send_message_upload_audio_action_l27 0xe6ac8a6f +#define CODE_send_message_upload_audio_action 0xf351d7ab +#define CODE_send_message_upload_photo_action 0xd1d34a26 +#define CODE_send_message_upload_document_action_l27 0x8faee98e +#define CODE_send_message_upload_document_action 0xaa0cd9e4 +#define CODE_send_message_geo_location_action 0x176f8ba1 +#define CODE_send_message_choose_contact_action 0x628cbc6f +#define CODE_contact_found 0xea879f95 +#define CODE_contacts_found 0x0566000e +#define CODE_update_service_notification 0x382dd3e4 +#define CODE_user_status_recently 0xe26f42f1 +#define CODE_user_status_last_week 0x07bf09fc +#define CODE_user_status_last_month 0x77ebc742 +#define CODE_update_privacy 0xee3b272a +#define CODE_input_privacy_key_status_timestamp 0x4f96cb18 +#define CODE_privacy_key_status_timestamp 0xbc2eab30 +#define CODE_input_privacy_value_allow_contacts 0x0d09e07b +#define CODE_input_privacy_value_allow_all 0x184b35ce +#define CODE_input_privacy_value_allow_users 0x131cc67f +#define CODE_input_privacy_value_disallow_contacts 0x0ba52007 +#define CODE_input_privacy_value_disallow_all 0xd66b66c9 +#define CODE_input_privacy_value_disallow_users 0x90110467 +#define CODE_privacy_value_allow_contacts 0xfffe1bac +#define CODE_privacy_value_allow_all 0x65427b82 +#define CODE_privacy_value_allow_users 0x4d5bbe0c +#define CODE_privacy_value_disallow_contacts 0xf888fa1a +#define CODE_privacy_value_disallow_all 0x8b73e763 +#define CODE_privacy_value_disallow_users 0x0c7f49b7 +#define CODE_account_privacy_rules 0x554abb6f +#define CODE_account_days_t_t_l 0xb8d0afdf +#define CODE_account_sent_change_phone_code 0xa4f58c4c +#define CODE_update_user_phone 0x12b9417b +#define CODE_document_attribute_image_size 0x6c37c15c +#define CODE_document_attribute_animated 0x11b58939 +#define CODE_document_attribute_sticker_l28 0x994c9882 +#define CODE_document_attribute_sticker 0x3a556302 +#define CODE_document_attribute_video 0x5910cccb +#define CODE_document_attribute_audio 0x051448e5 +#define CODE_document_attribute_filename 0x15590068 +#define CODE_messages_stickers_not_modified 0xf1749a22 +#define CODE_messages_stickers 0x8a8ecd32 +#define CODE_sticker_pack 0x12b299d4 +#define CODE_messages_all_stickers_not_modified 0xe86602c3 +#define CODE_messages_all_stickers 0x5ce352ec +#define CODE_disabled_feature 0xae636f24 +#define CODE_update_read_history_inbox 0x9961fd5c +#define CODE_update_read_history_outbox 0x2f2f21bf +#define CODE_messages_affected_messages 0x84d19185 +#define CODE_contact_link_unknown 0x5f4f9247 +#define CODE_contact_link_none 0xfeedd3ad +#define CODE_contact_link_has_phone 0x268f3f59 +#define CODE_contact_link_contact 0xd502c2d0 +#define CODE_update_web_page 0x2cc36971 +#define CODE_web_page_empty 0xeb1477e8 +#define CODE_web_page_pending 0xc586da1c +#define CODE_web_page 0xa31ea0b5 +#define CODE_message_media_web_page 0xa32dd600 +#define CODE_authorization 0x7bf2e6f6 +#define CODE_account_authorizations 0x1250abde +#define CODE_account_no_password 0x96dabc18 +#define CODE_account_password 0x7c18141c +#define CODE_account_password_settings 0xb7b72ab3 +#define CODE_account_password_input_settings 0xbcfc532c +#define CODE_auth_password_recovery 0x137948a5 +#define CODE_input_media_venue 0x2827a81a +#define CODE_message_media_venue 0x7912b71f +#define CODE_received_notify_message 0xa384b779 +#define CODE_chat_invite_empty 0x69df3769 +#define CODE_chat_invite_exported 0xfc2e05bc +#define CODE_chat_invite_already 0x5a686d7c +#define CODE_chat_invite 0xce917dcd +#define CODE_message_action_chat_joined_by_link 0xf89cf5e8 +#define CODE_update_read_messages_contents 0x68c13933 +#define CODE_input_sticker_set_empty 0xffb62b95 +#define CODE_input_sticker_set_i_d 0x9de7a269 +#define CODE_input_sticker_set_short_name 0x861cc8a0 +#define CODE_sticker_set 0xa7a43b17 +#define CODE_messages_sticker_set 0xb60a24a6 +#define CODE_user 0x22e49072 +#define CODE_bot_command 0xc27ac8c7 +#define CODE_bot_command_old 0xb79d22ab +#define CODE_bot_info_empty 0xbb2e37ce +#define CODE_bot_info 0x09cf585d +#define CODE_keyboard_button 0xa2fa4880 +#define CODE_keyboard_button_row 0x77608b83 +#define CODE_reply_keyboard_hide 0xa03e5b85 +#define CODE_reply_keyboard_force_reply 0xf4108aa0 +#define CODE_reply_keyboard_markup 0x3502758c +#define CODE_invoke_after_msg 0xcb9f372d +#define CODE_invoke_after_msgs 0x3dc4b4f0 +#define CODE_auth_check_phone 0x6fe51dfb +#define CODE_auth_send_code 0x768d5f4d +#define CODE_auth_send_call 0x03c51564 +#define CODE_auth_sign_up 0x1b067634 +#define CODE_auth_sign_in 0xbcd51581 +#define CODE_auth_log_out 0x5717da40 +#define CODE_auth_reset_authorizations 0x9fab0d1a +#define CODE_auth_send_invites 0x771c1d97 +#define CODE_auth_export_authorization 0xe5bfffcd +#define CODE_auth_import_authorization 0xe3ef9613 +#define CODE_auth_bind_temp_auth_key 0xcdd42a05 +#define CODE_account_register_device 0x446c712c +#define CODE_account_unregister_device 0x65c55b40 +#define CODE_account_update_notify_settings 0x84be5b93 +#define CODE_account_get_notify_settings 0x12b3ad31 +#define CODE_account_reset_notify_settings 0xdb7e1747 +#define CODE_account_update_profile 0xf0888d68 +#define CODE_account_update_status 0x6628562c +#define CODE_account_get_wall_papers 0xc04cfac2 +#define CODE_users_get_users 0x0d91a548 +#define CODE_users_get_full_user 0xca30a5b1 +#define CODE_contacts_get_statuses 0xc4a353ee +#define CODE_contacts_get_contacts 0x22c6aa08 +#define CODE_contacts_import_contacts 0xda30b32d +#define CODE_contacts_get_suggested 0xcd773428 +#define CODE_contacts_delete_contact 0x8e953744 +#define CODE_contacts_delete_contacts 0x59ab389e +#define CODE_contacts_block 0x332b49fc +#define CODE_contacts_unblock 0xe54100bd +#define CODE_contacts_get_blocked 0xf57c350f +#define CODE_contacts_export_card 0x84e53737 +#define CODE_contacts_import_card 0x4fe196fe +#define CODE_messages_get_messages 0x4222fa74 +#define CODE_messages_get_dialogs 0xeccf1df6 +#define CODE_messages_get_history 0x92a1df2f +#define CODE_messages_search 0x07e9f2ab +#define CODE_messages_read_history 0xb04f2510 +#define CODE_messages_delete_history 0xf4f8fb61 +#define CODE_messages_delete_messages 0xa5f18925 +#define CODE_messages_received_messages 0x05a954c0 +#define CODE_messages_set_typing 0xa3825e50 +#define CODE_messages_send_message 0xfc55e6b5 +#define CODE_messages_send_media 0xc8f16791 +#define CODE_messages_forward_messages 0x55e1728d +#define CODE_messages_get_chats 0x3c6aa187 +#define CODE_messages_get_full_chat 0x3b831c66 +#define CODE_messages_edit_chat_title 0xdc452855 +#define CODE_messages_edit_chat_photo 0xca4c79d8 +#define CODE_messages_add_chat_user 0xf9a0aa09 +#define CODE_messages_delete_chat_user 0xe0611f16 +#define CODE_messages_create_chat 0x09cb126e +#define CODE_updates_get_state 0xedd4882a +#define CODE_updates_get_difference 0x0a041495 +#define CODE_photos_update_profile_photo 0xeef579a0 +#define CODE_photos_upload_profile_photo 0xd50f9c88 +#define CODE_photos_delete_photos 0x87cf7f2f +#define CODE_upload_save_file_part 0xb304a621 +#define CODE_upload_get_file 0xe3a6cfb5 +#define CODE_help_get_config 0xc4f9186b +#define CODE_help_get_nearest_dc 0x1fb33026 +#define CODE_help_get_app_update 0xc812ac7e +#define CODE_help_save_app_log 0x6f02f748 +#define CODE_help_get_invite_text 0xa4a95186 +#define CODE_photos_get_user_photos 0xb7ee553c +#define CODE_messages_forward_message 0x33963bf9 +#define CODE_messages_send_broadcast 0xbf73f4da +#define CODE_geochats_get_located 0x7f192d8f +#define CODE_geochats_get_recents 0xe1427e6f +#define CODE_geochats_checkin 0x55b3e8fb +#define CODE_geochats_get_full_chat 0x6722dd6f +#define CODE_geochats_edit_chat_title 0x4c8e2273 +#define CODE_geochats_edit_chat_photo 0x35d81a95 +#define CODE_geochats_search 0xcfcdc44d +#define CODE_geochats_get_history 0xb53f7a68 +#define CODE_geochats_set_typing 0x08b8a729 +#define CODE_geochats_send_message 0x061b0044 +#define CODE_geochats_send_media 0xb8f0deff +#define CODE_geochats_create_geo_chat 0x0e092e16 +#define CODE_messages_get_dh_config 0x26cf8950 +#define CODE_messages_request_encryption 0xf64daf43 +#define CODE_messages_accept_encryption 0x3dbc0415 +#define CODE_messages_discard_encryption 0xedd923c5 +#define CODE_messages_set_encrypted_typing 0x791451ed +#define CODE_messages_read_encrypted_history 0x7f4b690a +#define CODE_messages_send_encrypted 0xa9776773 +#define CODE_messages_send_encrypted_file 0x9a901b66 +#define CODE_messages_send_encrypted_service 0x32d439a4 +#define CODE_messages_received_queue 0x55a5bb66 +#define CODE_upload_save_big_file_part 0xde7b673d +#define CODE_init_connection 0x69796de9 +#define CODE_help_get_support 0x9cdf08cd +#define CODE_auth_send_sms 0x0da9f3e8 +#define CODE_messages_read_message_contents 0x36a73f77 +#define CODE_account_check_username 0x2714d86c +#define CODE_account_update_username 0x3e0bdd7c +#define CODE_contacts_search 0x11f812d8 +#define CODE_account_get_privacy 0xdadbc950 +#define CODE_account_set_privacy 0xc9f81ce8 +#define CODE_account_delete_account 0x418d4e0b +#define CODE_account_get_account_t_t_l 0x08fc711d +#define CODE_account_set_account_t_t_l 0x2442485e +#define CODE_invoke_with_layer 0xda9b0d0d +#define CODE_contacts_resolve_username 0x0bf0131c +#define CODE_account_send_change_phone_code 0xa407a8f4 +#define CODE_account_change_phone 0x70c32edb +#define CODE_messages_get_stickers 0xae22e045 +#define CODE_messages_get_all_stickers 0xaa3bc868 +#define CODE_account_update_device_locked 0x38df3532 +#define CODE_auth_import_bot_authorization 0x67a3ff2c +#define CODE_messages_get_web_page_preview 0x25223e24 +#define CODE_account_get_authorizations 0xe320c158 +#define CODE_account_reset_authorization 0xdf77f3bc +#define CODE_account_get_password 0x548a30f5 +#define CODE_account_get_password_settings 0xbc8d11bb +#define CODE_account_update_password_settings 0xfa7c4b86 +#define CODE_auth_check_password 0x0a63011e +#define CODE_auth_request_password_recovery 0xd897bc66 +#define CODE_auth_recover_password 0x4ea56e92 +#define CODE_invoke_without_updates 0xbf9459b7 +#define CODE_messages_export_chat_invite 0x7d885289 +#define CODE_messages_check_chat_invite 0x3eadb1bb +#define CODE_messages_import_chat_invite 0x6c50051c +#define CODE_messages_get_sticker_set 0x2619a90e +#define CODE_messages_install_sticker_set 0xefbbfae9 +#define CODE_messages_uninstall_sticker_set 0xf96e55de +#define CODE_messages_start_bot 0x1b3e0ffc +#define CODE_decrypted_message_media_empty 0x089f5c4a +#define CODE_decrypted_message_media_photo 0x32798a8c +#define CODE_decrypted_message_media_geo_point 0x35480a59 +#define CODE_decrypted_message_media_contact 0x588a0a97 +#define CODE_decrypted_message_action_set_message_t_t_l 0xa1733aec +#define CODE_decrypted_message_media_document 0xb095434b +#define CODE_decrypted_message_action_read_messages 0x0c4f40be +#define CODE_decrypted_message_action_delete_messages 0x65614304 +#define CODE_decrypted_message_action_screenshot_messages 0x8ac1f475 +#define CODE_decrypted_message_action_flush_history 0x6719e45c +#define CODE_decrypted_message 0x204d3878 +#define CODE_decrypted_message_service 0x73164160 +#define CODE_decrypted_message_media_video 0x524a415d +#define CODE_decrypted_message_media_audio 0x57e0a9cb +#define CODE_decrypted_message_layer 0x1be31789 +#define CODE_decrypted_message_action_resend 0x511110b0 +#define CODE_decrypted_message_action_notify_layer 0xf3048883 +#define CODE_decrypted_message_action_typing 0xccb27641 +#define CODE_decrypted_message_action_request_key 0xf3c9611b +#define CODE_decrypted_message_action_accept_key 0x6fe1735b +#define CODE_decrypted_message_action_abort_key 0xdd05ec6b +#define CODE_decrypted_message_action_commit_key 0xec2e0b9b +#define CODE_decrypted_message_action_noop 0xa82fdd63 +#define CODE_decrypted_message_media_external_document 0xfa95b0dd +#define CODE_binlog_encr_key 0x0377168f +#define CODE_binlog_start 0x3b06de69 +#define CODE_binlog_dc_option 0xf96feb32 +#define CODE_binlog_dc_option_new 0x7c0d22d8 +#define CODE_binlog_auth_key 0x71e8c156 +#define CODE_binlog_default_dc 0x9e83dbdc +#define CODE_binlog_dc_signed 0x26451bb5 +#define CODE_binlog_our_id 0x68a870e8 +#define CODE_binlog_set_dh_params 0xeaeb7826 +#define CODE_binlog_set_pts 0x2ca8c939 +#define CODE_binlog_set_qts 0xd95738ac +#define CODE_binlog_set_date 0x1d0f4b52 +#define CODE_binlog_set_seq 0x6eeb2989 +#define CODE_binlog_encr_chat_delete 0xee1b38e8 +#define CODE_binlog_encr_chat_new 0x84977251 +#define CODE_binlog_encr_chat_exchange_new 0x9d49488d +#define CODE_binlog_user_delete 0xac55d447 +#define CODE_binlog_user_new 0x127cf2f9 +#define CODE_binlog_chat_new 0x0a10aa92 +#define CODE_binlog_chat_add_participant 0x535475ea +#define CODE_binlog_chat_del_participant 0x7dd1a1a2 +#define CODE_binlog_set_msg_id 0x3c873416 +#define CODE_binlog_message_delete 0x847e77b1 +#define CODE_binlog_message_new 0x427cfcdb +#define CODE_binlog_message_encr_new 0x6cf7cabc +#define CODE_binlog_msg_update 0x6dd4d85f +#define CODE_binlog_reset_authorization 0x83327955 +#define CODE_res_p_q 0x05162463 +#define CODE_server__d_h_params_fail 0x79cb045d +#define CODE_server__d_h_params_ok 0xd0e8075c +#define CODE_p_q_inner_data 0x83c95aec +#define CODE_p_q_inner_data_temp 0x3c6a84d4 +#define CODE_client__d_h_inner_data 0x6643b654 +#define CODE_dh_gen_ok 0x3bcbf734 +#define CODE_dh_gen_retry 0x46dc1fb9 +#define CODE_dh_gen_fail 0xa69dae02 +#define CODE_server__d_h_inner_data 0xb5890dba +#define CODE_req_pq 0x60469778 +#define CODE_req__d_h_params 0xd712e4be +#define CODE_set_client__d_h_params 0xf5045f1f +#define CODE_decrypted_message_media_video_l12 0x4cee6ef3 +#define CODE_decrypted_message_media_audio_l12 0x6080758f +#define CODE_update_msg_update 0x03114739 +#define CODE_message_media_photo_l27 0xc8c45a2a +#define CODE_message_media_video_l27 0xa2d24290 +#endif diff --git a/libs/tgl/src/auto/scheme.tl b/libs/tgl/src/auto/scheme.tl new file mode 100644 index 0000000000..e95425f435 --- /dev/null +++ b/libs/tgl/src/auto/scheme.tl @@ -0,0 +1,829 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +int128 long long = Int128; +int256 long long long long = Int256; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia; +inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector = ChatFull; + + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia; +messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#9f84f49e = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector = Photo; +photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; +videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#ff036af1 user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; + +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; + +messages.chats#64ff9fd5 chats:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateDeleteMessages#a20db0e5 messages:Vector pts:int pts_count:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; +dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption; + +config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector seq:int = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; +sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction; +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute; +documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#5ce352ec hash:string packs:Vector sets:Vector documents:Vector = messages.AllStickers; + +disabledFeature#ae636f24 feature:string description:string = DisabledFeature; + +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; + +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; + +contactLinkUnknown#5f4f9247 = ContactLink; +contactLinkNone#feedd3ad = ContactLink; +contactLinkHasPhone#268f3f59 = ContactLink; +contactLinkContact#d502c2d0 = ContactLink; + +updateWebPage#2cc36971 webpage:WebPage = Update; + +webPageEmpty#eb1477e8 id:long = WebPage; +webPagePending#c586da1c id:long date:int = WebPage; +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; + +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; + +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; + +account.authorizations#1250abde authorizations:Vector = account.Authorizations; + +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; + +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; + +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; + +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; + +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; + +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; + +receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage; + +chatInviteEmpty#69df3769 = ExportedChatInvite; +chatInviteExported#fc2e05bc link:string = ExportedChatInvite; + +chatInviteAlready#5a686d7c chat:Chat = ChatInvite; +chatInvite#ce917dcd title:string = ChatInvite; + +messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction; + +updateReadMessagesContents#68c13933 messages:Vector pts:int pts_count:int = Update; + +inputStickerSetEmpty#ffb62b95 = InputStickerSet; +inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet; +inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet; + +stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet; + +messages.stickerSet#b60a24a6 set:StickerSet packs:Vector documents:Vector = messages.StickerSet; + +user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User; + +botCommand#c27ac8c7 command:string description:string = BotCommand; +botCommandOld#b79d22ab command:string params:string description:string = BotCommand; + +botInfoEmpty#bb2e37ce = BotInfo; +botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector = BotInfo; + +keyboardButton#a2fa4880 text:string = KeyboardButton; + +keyboardButtonRow#77608b83 buttons:Vector = KeyboardButtonRow; + +replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup; +replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup; +replyKeyboardMarkup#3502758c flags:int rows:Vector = ReplyMarkup; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#a5f18925 id:Vector = messages.AffectedMessages; +messages.receivedMessages#5a954c0 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage; +messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates; +messages.forwardMessages#55e1728d peer:InputPeer id:Vector random_id:Vector = Updates; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#dc452855 chat_id:int title:string = Updates; +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; +messages.createChat#9cb126e users:Vector title:string = Updates; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; +messages.sendBroadcast#bf73f4da contacts:Vector random_id:Vector message:string media:InputMedia = Updates; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#36a73f77 id:Vector = messages.AffectedMessages; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; + +account.updateDeviceLocked#38df3532 period:int = Bool; + +auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization; + +messages.getWebPagePreview#25223e24 message:string = MessageMedia; + +account.getAuthorizations#e320c158 = account.Authorizations; +account.resetAuthorization#df77f3bc hash:long = Bool; +account.getPassword#548a30f5 = account.Password; +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; +auth.recoverPassword#4ea56e92 code:string = auth.Authorization; + +invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X; + +messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite; +messages.checkChatInvite#3eadb1bb hash:string = ChatInvite; +messages.importChatInvite#6c50051c hash:string = Updates; +messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; +messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool; +messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool; +messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates; +---types--- +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; +decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageActionReadMessages#c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; + +decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage; +decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer; +decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; +decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction; + +decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction; +decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction; +decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction; + +decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = DecryptedMessageMedia; +---functions--- +---types--- + +binlog.encrKey key:64*[int] = binlog.EncrKey; + +binlog.start = binlog.Update; + +binlog.dcOption dc:int name:string ip:string port:int = binlog.Update; +binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update; + +binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update; +binlog.defaultDc dc:int = binlog.Update; +binlog.dcSigned dc:int = binlog.Update; + +binlog.ourId id:int = binlog.Update; + +binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update; + +binlog.setPts pts:int = binlog.Update; +binlog.setQts qts:int = binlog.Update; +binlog.setDate date:int = binlog.Update; +binlog.setSeq seq:int = binlog.Update; + +binlog.encrChatDelete id:int = binlog.Update; +binlog.encrChatNew#84977251 flags:# id:int + access_hash:flags.17?long + date:flags.18?int + admin:flags.19?int + user_id:flags.20?int + key:flags.21?%binlog.EncrKey + g_key:flags.22?%binlog.EncrKey + state:flags.23?int + ttl:flags.24?int + layer:flags.25?int + in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int + key_fingerprint:flags.27?long + = binlog.Update; + +binlog.encrChatExchangeNew#9d49488d flags:# id:int + exchange_id:flags.17?long + key:flags.18?%binlog.EncrKey + state:flags.19?int + = binlog.Update; + +binlog.userDelete id:int = binlog.Update; +binlog.userNew#127cf2f9 flags:# id:int + access_hash:flags.17?long + first_name:flags.18?string last_name:flags.18?string + phone:flags.19?string + username:flags.20?string + photo:flags.21?Photo + real_first_name:flags.22?string real_last_name:flags.22?string + user_photo:flags.23?UserProfilePhoto + last_read_in:flags.24?int + last_read_out:flags.25?int + bot_info:flags.26?BotInfo + = binlog.Update; + +binlog.chatNew#0a10aa92 flags:# id:int + title:flags.17?string + user_num:flags.18?int + date:flags.19?int + version:flags.20?int participants:flags.20?(Vector ChatParticipant) + chat_photo:flags.21?ChatPhoto + photo:flags.22?Photo + admin:flags.23?int + last_read_in:flags.24?int + last_read_out:flags.25?int + = binlog.Update; + +binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update; +binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update; + +binlog.setMsgId old_id:long new_id:int = binlog.Update; +binlog.messageDelete lid:long = binlog.Update; + +binlog.messageNew#427cfcdb flags:# lid:long + from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int + fwd_from_id:flags.18?int fwd_date:flags.18?int + date:flags.19?int + message:flags.20?string + media:flags.21?MessageMedia + action:flags.22?MessageAction + reply_id:flags.23?int + reply_markup:flags.24?ReplyMarkup + = binlog.Update; + +binlog.messageEncrNew#6cf7cabc flags:# lid:long + from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int + //empty 18 bit + date:flags.19?int + message:flags.20?string + encr_media:flags.21?DecryptedMessageMedia + encr_action:flags.22?DecryptedMessageAction + file:flags.23?EncryptedFile + = binlog.Update; + +binlog.msgUpdate#6dd4d85f lid:long = binlog.Update; + +binlog.resetAuthorization = binlog.Update; + + +---functions--- +---types--- +resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ; +server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params; +server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params; + +p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data; +p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data; +client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data; + +dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer; +dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer; +dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer; + +server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data; + +---functions--- +req_pq#60469778 nonce:int128 = ResPQ; +req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params; +set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer; +---types--- +decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; + +updateMsgUpdate id:int pts:int pts_count:int = Update; + +messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideoL27#a2d24290 video:Video = MessageMedia; +//messageMediaDocumentL27#2fda2204 document:Document = MessageMedia; +//messageMediaAudioL27#c6b68300 audio:Audio = MessageMedia; +---functions--- diff --git a/libs/tgl/src/auto/scheme.tlo b/libs/tgl/src/auto/scheme.tlo new file mode 100644 index 0000000000..02d3ca415e Binary files /dev/null and b/libs/tgl/src/auto/scheme.tlo differ diff --git a/libs/tgl/src/auto/scheme2.tl b/libs/tgl/src/auto/scheme2.tl new file mode 100644 index 0000000000..1867166cb2 --- /dev/null +++ b/libs/tgl/src/auto/scheme2.tl @@ -0,0 +1,540 @@ +int#a8509bda ? = Int +long#22076cba ? = Long +double#2210c154 ? = Double +string#b5286e24 ? = String +bytes#0ee1379f string = Bytes +int128#7d36c439 long long = Int128 +int256#f2c798b3 long long long long = Int256 +boolFalse#bc799737 = Bool +boolTrue#997275b5 = Bool +vector#1cb5c415 t:Type # [ t ] = Vector t +error#c4b9f9bb code:int text:string = Error +null#56730bcc = Null +inputPeerEmpty#7f3b18ea = InputPeer +inputPeerSelf#7da07ec9 = InputPeer +inputPeerContact#1023dbe8 user_id:int = InputPeer +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer +inputPeerChat#179be863 chat_id:int = InputPeer +inputUserEmpty#b98886cf = InputUser +inputUserSelf#f7c1b13f = InputUser +inputUserContact#86e94f65 user_id:int = InputUser +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile +inputMediaEmpty#9664f57f = InputMedia +inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia +inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia +inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia +inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia +inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto +inputGeoPointEmpty#e4c123d6 = InputGeoPoint +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint +inputPhotoEmpty#1cd7bf0d = InputPhoto +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto +inputVideoEmpty#5508ec75 = InputVideo +inputVideo#ee579652 id:long access_hash:long = InputVideo +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation +inputPhotoCropAuto#ade6b004 = InputPhotoCrop +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent +peerUser#9db1bc6d user_id:int = Peer +peerChat#bad0e5bb chat_id:int = Peer +storage.fileUnknown#aa963b05 = storage.FileType +storage.fileJpeg#007efe0e = storage.FileType +storage.fileGif#cae1aadf = storage.FileType +storage.filePng#0a4f63c0 = storage.FileType +storage.filePdf#ae1e508d = storage.FileType +storage.fileMp3#528a0677 = storage.FileType +storage.fileMov#4b09ebbc = storage.FileType +storage.filePartial#40bc6f52 = storage.FileType +storage.fileMp4#b3cea0e4 = storage.FileType +storage.fileWebp#1081464c = storage.FileType +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation +userEmpty#200250ba id:int = User +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto +userStatusEmpty#09d05049 = UserStatus +userStatusOnline#edb93949 expires:int = UserStatus +userStatusOffline#008c703f was_online:int = UserStatus +chatEmpty#9ba2d800 id:int = Chat +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat +chatForbidden#fb0ccc41 id:int title:string date:int = Chat +chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector BotInfo = ChatFull +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant +chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector ChatParticipant version:int = ChatParticipants +chatPhotoEmpty#37c1011c = ChatPhoto +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto +messageEmpty#83e5de54 id:int = Message +message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message +messageMediaEmpty#3ded6320 = MessageMedia +messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia +messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia +messageMediaUnsupported#9f84f49e = MessageMedia +messageActionEmpty#b6aef7b0 = MessageAction +messageActionChatCreate#a6638b9a title:string users:Vector int = MessageAction +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction +messageActionChatDeletePhoto#95e3fbef = MessageAction +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog +photoEmpty#2331b22d id:long = Photo +photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector PhotoSize = Photo +photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector PhotoSize = Photo +photoSizeEmpty#0e17e23c type:string = PhotoSize +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize +videoEmpty#c10658a8 id:long = Video +video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video +videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video +geoPointEmpty#1117dd5f = GeoPoint +geoPoint#2049d70c longitude:double latitude:double = GeoPoint +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode +auth.authorization#ff036af1 user:User = auth.Authorization +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer +inputNotifyUsers#193b4417 = InputNotifyPeer +inputNotifyChats#4a95e84e = InputNotifyPeer +inputNotifyAll#a429b886 = InputNotifyPeer +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings +wallPaper#ccb03657 id:int title:string sizes:Vector PhotoSize color:int = WallPaper +userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull +contact#f911c994 user_id:int mutual:Bool = Contact +importedContact#d0028438 user_id:int client_id:long = ImportedContact +contactBlocked#561bc879 user_id:int date:int = ContactBlocked +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts +contacts.contacts#6f8b8cb2 contacts:Vector Contact users:Vector User = contacts.Contacts +contacts.importedContacts#ad524315 imported:Vector ImportedContact retry_contacts:Vector long users:Vector User = contacts.ImportedContacts +contacts.blocked#1c138d15 blocked:Vector ContactBlocked users:Vector User = contacts.Blocked +contacts.blockedSlice#900802a1 count:int blocked:Vector ContactBlocked users:Vector User = contacts.Blocked +contacts.suggested#5649dcc5 results:Vector ContactSuggested users:Vector User = contacts.Suggested +messages.dialogs#15ba6c40 dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs +messages.dialogsSlice#71e094f3 count:int dialogs:Vector Dialog messages:Vector Message chats:Vector Chat users:Vector User = messages.Dialogs +messages.messages#8c718e87 messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages +messages.messagesSlice#0b446ae3 count:int messages:Vector Message chats:Vector Chat users:Vector User = messages.Messages +messages.messageEmpty#3f4e0648 = messages.Message +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage +messages.chats#64ff9fd5 chats:Vector Chat = messages.Chats +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector Chat users:Vector User = messages.ChatFull +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory +inputMessagesFilterEmpty#57e2f66c = MessagesFilter +inputMessagesFilterPhotos#9609a51c = MessagesFilter +inputMessagesFilterVideo#9fc00e65 = MessagesFilter +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter +inputMessagesFilterDocument#9eddf188 = MessagesFilter +inputMessagesFilterAudio#cfc87522 = MessagesFilter +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update +updateMessageID#4e90bfd6 id:int random_id:long = Update +updateDeleteMessages#a20db0e5 messages:Vector int pts:int pts_count:int = Update +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update +updateChatParticipants#07761198 participants:ChatParticipants = Update +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update +updateContactRegistered#2575bbb9 user_id:int date:int = Update +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference +updates.difference#00f49ca0 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User state:updates.State = updates.Difference +updates.differenceSlice#a8fb1981 new_messages:Vector Message new_encrypted_messages:Vector EncryptedMessage other_updates:Vector Update chats:Vector Chat users:Vector User intermediate_state:updates.State = updates.Difference +updatesTooLong#e317af7e = Updates +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates +updateShort#78d4dec1 update:Update date:int = Updates +updatesCombined#725b04c3 updates:Vector Update users:Vector User chats:Vector Chat date:int seq_start:int seq:int = Updates +updates#74ae4240 updates:Vector Update users:Vector User chats:Vector Chat date:int seq:int = Updates +photos.photos#8dca6aa5 photos:Vector Photo users:Vector User = photos.Photos +photos.photosSlice#15051f54 count:int photos:Vector Photo users:Vector User = photos.Photos +photos.photo#20212ca8 photo:Photo users:Vector User = photos.Photo +upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File +dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption +dcOption#05d8c6cc flags:int id:int ip_address:string port:int = DcOption +config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector DcOption chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector DisabledFeature = Config +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate +help.noAppUpdate#c45a6536 = help.AppUpdate +help.inviteText#18cb9f78 message:string = help.InviteText +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector contacts.Link seq:int = messages.SentMessage +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector Chat users:Vector User seq:int = geochats.StatedMessage +geochats.located#48feb267 results:Vector ChatLocated messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Located +geochats.messages#d1526db1 messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages +geochats.messagesSlice#bc5863e8 count:int messages:Vector GeoChatMessage chats:Vector Chat users:Vector User = geochats.Messages +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction +messageActionGeoChatCheckin#0c7d53de = MessageAction +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update +updateEncryptedChatTyping#1710f156 chat_id:int = Update +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat +encryptedFileEmpty#c21f497e = EncryptedFile +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update +updateDcOptions#8e5e9873 dc_options:Vector DcOption = Update +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector DocumentAttribute = InputMedia +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia +messageMediaDocument#2fda2204 document:Document = MessageMedia +messageMediaAudio#c6b68300 audio:Audio = MessageMedia +inputAudioEmpty#d95adc84 = InputAudio +inputAudio#77d440ff id:long access_hash:long = InputAudio +inputDocumentEmpty#72f0eaae = InputDocument +inputDocument#18798952 id:long access_hash:long = InputDocument +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation +audioEmpty#586988d8 id:long = Audio +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio +documentEmpty#36f8c871 id:long = Document +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = Document +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document +help.support#17c6b5f6 phone_number:string user:User = help.Support +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer +notifyUsers#b4c83b4c = NotifyPeer +notifyChats#c007cec3 = NotifyPeer +notifyAll#74d07c60 = NotifyPeer +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode +sendMessageTypingAction#16bf744e = SendMessageAction +sendMessageCancelAction#fd5ec8f5 = SendMessageAction +sendMessageRecordVideoAction#a187d66f = SendMessageAction +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction +sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction +sendMessageChooseContactAction#628cbc6f = SendMessageAction +contactFound#ea879f95 user_id:int = ContactFound +contacts.found#0566000e results:Vector ContactFound users:Vector User = contacts.Found +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update +userStatusRecently#e26f42f1 = UserStatus +userStatusLastWeek#07bf09fc = UserStatus +userStatusLastMonth#77ebc742 = UserStatus +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector PrivacyRule = Update +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey +inputPrivacyValueAllowContacts#0d09e07b = InputPrivacyRule +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule +inputPrivacyValueAllowUsers#131cc67f users:Vector InputUser = InputPrivacyRule +inputPrivacyValueDisallowContacts#0ba52007 = InputPrivacyRule +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule +inputPrivacyValueDisallowUsers#90110467 users:Vector InputUser = InputPrivacyRule +privacyValueAllowContacts#fffe1bac = PrivacyRule +privacyValueAllowAll#65427b82 = PrivacyRule +privacyValueAllowUsers#4d5bbe0c users:Vector int = PrivacyRule +privacyValueDisallowContacts#f888fa1a = PrivacyRule +privacyValueDisallowAll#8b73e763 = PrivacyRule +privacyValueDisallowUsers#0c7f49b7 users:Vector int = PrivacyRule +account.privacyRules#554abb6f rules:Vector PrivacyRule users:Vector User = account.PrivacyRules +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode +updateUserPhone#12b9417b user_id:int phone:string = Update +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute +documentAttributeAnimated#11b58939 = DocumentAttribute +documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute +documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute +documentAttributeAudio#051448e5 duration:int = DocumentAttribute +documentAttributeFilename#15590068 file_name:string = DocumentAttribute +messages.stickersNotModified#f1749a22 = messages.Stickers +messages.stickers#8a8ecd32 hash:string stickers:Vector Document = messages.Stickers +stickerPack#12b299d4 emoticon:string documents:Vector long = StickerPack +messages.allStickersNotModified#e86602c3 = messages.AllStickers +messages.allStickers#5ce352ec hash:string packs:Vector StickerPack sets:Vector StickerSet documents:Vector Document = messages.AllStickers +disabledFeature#ae636f24 feature:string description:string = DisabledFeature +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages +contactLinkUnknown#5f4f9247 = ContactLink +contactLinkNone#feedd3ad = ContactLink +contactLinkHasPhone#268f3f59 = ContactLink +contactLinkContact#d502c2d0 = ContactLink +updateWebPage#2cc36971 webpage:WebPage = Update +webPageEmpty#eb1477e8 id:long = WebPage +webPagePending#c586da1c id:long date:int = WebPage +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization +account.authorizations#1250abde authorizations:Vector Authorization = account.Authorizations +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia +receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage +chatInviteEmpty#69df3769 = ExportedChatInvite +chatInviteExported#fc2e05bc link:string = ExportedChatInvite +chatInviteAlready#5a686d7c chat:Chat = ChatInvite +chatInvite#ce917dcd title:string = ChatInvite +messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction +updateReadMessagesContents#68c13933 messages:Vector int pts:int pts_count:int = Update +inputStickerSetEmpty#ffb62b95 = InputStickerSet +inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet +inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet +stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet +messages.stickerSet#b60a24a6 set:StickerSet packs:Vector StickerPack documents:Vector Document = messages.StickerSet +user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User +botCommand#c27ac8c7 command:string description:string = BotCommand +botCommandOld#b79d22ab command:string params:string description:string = BotCommand +botInfoEmpty#bb2e37ce = BotInfo +botInfo#09cf585d user_id:int version:int share_text:string description:string commands:Vector BotCommand = BotInfo +keyboardButton#a2fa4880 text:string = KeyboardButton +keyboardButtonRow#77608b83 buttons:Vector KeyboardButton = KeyboardButtonRow +replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup +replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup +replyKeyboardMarkup#3502758c flags:int rows:Vector KeyboardButtonRow = ReplyMarkup +invokeAfterMsg#cb9f372d X:Type msg_id:long query:X = X +invokeAfterMsgs#3dc4b4f0 X:Type msg_ids:Vector long query:X = X +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode +auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization +auth.logOut#5717da40 = Bool +auth.resetAuthorizations#9fab0d1a = Bool +auth.sendInvites#771c1d97 phone_numbers:Vector string message:string = Bool +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool +account.unregisterDevice#65c55b40 token_type:int token:string = Bool +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings +account.resetNotifySettings#db7e1747 = Bool +account.updateProfile#f0888d68 first_name:string last_name:string = User +account.updateStatus#6628562c offline:Bool = Bool +account.getWallPapers#c04cfac2 = Vector WallPaper +users.getUsers#0d91a548 id:Vector InputUser = Vector User +users.getFullUser#ca30a5b1 id:InputUser = UserFull +contacts.getStatuses#c4a353ee = Vector ContactStatus +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts +contacts.importContacts#da30b32d contacts:Vector InputContact replace:Bool = contacts.ImportedContacts +contacts.getSuggested#cd773428 limit:int = contacts.Suggested +contacts.deleteContact#8e953744 id:InputUser = contacts.Link +contacts.deleteContacts#59ab389e id:Vector InputUser = Bool +contacts.block#332b49fc id:InputUser = Bool +contacts.unblock#e54100bd id:InputUser = Bool +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked +contacts.exportCard#84e53737 = Vector int +contacts.importCard#4fe196fe export_card:Vector int = User +messages.getMessages#4222fa74 id:Vector int = messages.Messages +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages +messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory +messages.deleteMessages#a5f18925 id:Vector int = messages.AffectedMessages +messages.receivedMessages#05a954c0 max_id:int = Vector ReceivedNotifyMessage +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool +messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage +messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates +messages.forwardMessages#55e1728d peer:InputPeer id:Vector int random_id:Vector long = Updates +messages.getChats#3c6aa187 id:Vector int = messages.Chats +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull +messages.editChatTitle#dc452855 chat_id:int title:string = Updates +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates +messages.createChat#09cb126e users:Vector InputUser title:string = Updates +updates.getState#edd4882a = updates.State +updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo +photos.deletePhotos#87cf7f2f id:Vector InputPhoto = Vector long +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File +help.getConfig#c4f9186b = Config +help.getNearestDc#1fb33026 = NearestDc +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate +help.saveAppLog#6f02f748 events:Vector InputAppEvent = Bool +help.getInviteText#a4a95186 lang_code:string = help.InviteText +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates +messages.sendBroadcast#bf73f4da contacts:Vector InputUser random_id:Vector long message:string media:InputMedia = Updates +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages +geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool +geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage +geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat +messages.discardEncryption#edd923c5 chat_id:int = Bool +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage +messages.receivedQueue#55a5bb66 max_qts:int = Vector long +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool +initConnection#69796de9 X:Type api_id:int device_model:string system_version:string app_version:string lang_code:string query:X = X +help.getSupport#9cdf08cd = help.Support +auth.sendSms#0da9f3e8 phone_number:string phone_code_hash:string = Bool +messages.readMessageContents#36a73f77 id:Vector int = messages.AffectedMessages +account.checkUsername#2714d86c username:string = Bool +account.updateUsername#3e0bdd7c username:string = User +contacts.search#11f812d8 q:string limit:int = contacts.Found +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector InputPrivacyRule = account.PrivacyRules +account.deleteAccount#418d4e0b reason:string = Bool +account.getAccountTTL#08fc711d = AccountDaysTTL +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool +invokeWithLayer#da9b0d0d X:Type layer:int query:X = X +contacts.resolveUsername#0bf0131c username:string = User +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers +account.updateDeviceLocked#38df3532 period:int = Bool +auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization +messages.getWebPagePreview#25223e24 message:string = MessageMedia +account.getAuthorizations#e320c158 = account.Authorizations +account.resetAuthorization#df77f3bc hash:long = Bool +account.getPassword#548a30f5 = account.Password +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool +auth.checkPassword#0a63011e password_hash:bytes = auth.Authorization +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery +auth.recoverPassword#4ea56e92 code:string = auth.Authorization +invokeWithoutUpdates#bf9459b7 X:Type query:X = X +messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite +messages.checkChatInvite#3eadb1bb hash:string = ChatInvite +messages.importChatInvite#6c50051c hash:string = Updates +messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet +messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool +messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool +messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates +decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia +decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia +decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction +decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia +decryptedMessageActionReadMessages#0c4f40be random_ids:Vector long = DecryptedMessageAction +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector long = DecryptedMessageAction +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector long = DecryptedMessageAction +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction +decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage +decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage +decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia +decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer +decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction +decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction +decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction +decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction +decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction +decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction +decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction +decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector DocumentAttribute = DecryptedMessageMedia +binlog.encrKey#0377168f key:64*[ int ] = binlog.EncrKey +binlog.start#3b06de69 = binlog.Update +binlog.dcOption#f96feb32 dc:int name:string ip:string port:int = binlog.Update +binlog.dcOptionNew#7c0d22d8 flags:int dc:int name:string ip:string port:int = binlog.Update +binlog.authKey#71e8c156 dc:int key:%binlog.EncrKey = binlog.Update +binlog.defaultDc#9e83dbdc dc:int = binlog.Update +binlog.dcSigned#26451bb5 dc:int = binlog.Update +binlog.ourId#68a870e8 id:int = binlog.Update +binlog.setDhParams#eaeb7826 root:int prime:%binlog.EncrKey version:int = binlog.Update +binlog.setPts#2ca8c939 pts:int = binlog.Update +binlog.setQts#d95738ac qts:int = binlog.Update +binlog.setDate#1d0f4b52 date:int = binlog.Update +binlog.setSeq#6eeb2989 seq:int = binlog.Update +binlog.encrChatDelete#ee1b38e8 id:int = binlog.Update +binlog.encrChatNew#84977251 flags:# id:int access_hash:flags.17?long date:flags.18?int admin:flags.19?int user_id:flags.20?int key:flags.21?%binlog.EncrKey g_key:flags.22?%binlog.EncrKey state:flags.23?int ttl:flags.24?int layer:flags.25?int in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int key_fingerprint:flags.27?long = binlog.Update +binlog.encrChatExchangeNew#9d49488d flags:# id:int exchange_id:flags.17?long key:flags.18?%binlog.EncrKey state:flags.19?int = binlog.Update +binlog.userDelete#ac55d447 id:int = binlog.Update +binlog.userNew#127cf2f9 flags:# id:int access_hash:flags.17?long first_name:flags.18?string last_name:flags.18?string phone:flags.19?string username:flags.20?string photo:flags.21?Photo real_first_name:flags.22?string real_last_name:flags.22?string user_photo:flags.23?UserProfilePhoto last_read_in:flags.24?int last_read_out:flags.25?int bot_info:flags.26?BotInfo = binlog.Update +binlog.chatNew#0a10aa92 flags:# id:int title:flags.17?string user_num:flags.18?int date:flags.19?int version:flags.20?int participants:flags.20?Vector ChatParticipant chat_photo:flags.21?ChatPhoto photo:flags.22?Photo admin:flags.23?int last_read_in:flags.24?int last_read_out:flags.25?int = binlog.Update +binlog.chatAddParticipant#535475ea id:int version:int user_id:int inviter_id:int date:int = binlog.Update +binlog.chatDelParticipant#7dd1a1a2 id:int version:int user_id:int = binlog.Update +binlog.setMsgId#3c873416 old_id:long new_id:int = binlog.Update +binlog.messageDelete#847e77b1 lid:long = binlog.Update +binlog.messageNew#427cfcdb flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int fwd_from_id:flags.18?int fwd_date:flags.18?int date:flags.19?int message:flags.20?string media:flags.21?MessageMedia action:flags.22?MessageAction reply_id:flags.23?int reply_markup:flags.24?ReplyMarkup = binlog.Update +binlog.messageEncrNew#6cf7cabc flags:# lid:long from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int date:flags.19?int message:flags.20?string encr_media:flags.21?DecryptedMessageMedia encr_action:flags.22?DecryptedMessageAction file:flags.23?EncryptedFile = binlog.Update +binlog.msgUpdate#6dd4d85f lid:long = binlog.Update +binlog.resetAuthorization#83327955 = binlog.Update +resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector long = ResPQ +server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params +server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params +p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data +p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data +client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data +dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer +dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer +dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer +server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data +req_pq#60469778 nonce:int128 = ResPQ +req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params +set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer +decryptedMessageMediaVideoL12#4cee6ef3 str_thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia +decryptedMessageMediaAudioL12#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia +updateMsgUpdate#03114739 id:int pts:int pts_count:int = Update +messageMediaPhotoL27#c8c45a2a photo:Photo = MessageMedia +messageMediaVideoL27#a2d24290 video:Video = MessageMedia diff --git a/libs/tgl/src/binlog.c b/libs/tgl/src/binlog.c new file mode 100644 index 0000000000..74a47b38c2 --- /dev/null +++ b/libs/tgl/src/binlog.c @@ -0,0 +1,1830 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#include +#include +#else +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "tgl-binlog.h" +#include "mtproto-common.h" +//#include "net.h" +#include "mtproto-client.h" +#include "mtproto-utils.h" + +#include "tgl.h" +#include "auto.h" +#include "auto/auto-types.h" +#include "auto/auto-skip.h" +#include "auto/auto-store-ds.h" +#include "auto/auto-fetch-ds.h" +#include "auto/auto-free-ds.h" + +#include "tgl-structures.h" +#include "tgl-methods-in.h" + +#include + +#define BINLOG_BUFFER_SIZE (1 << 20) +static int binlog_buffer[BINLOG_BUFFER_SIZE]; +static int *rptr; +static int *wptr; +//static int TLS->binlog_fd; +static int in_replay_log; // should be used ONLY for DEBUG + + +#define MAX_LOG_EVENT_SIZE (1 << 17) + +char *get_binlog_file_name (void); + +static void *alloc_log_event (int l) { + return binlog_buffer; +} + +static int mystreq1 (const char *a, const char *b, int l) { + if ((int)strlen (a) != l) { return 1; } + return memcmp (a, b, l); +} + +static long long binlog_pos; + +static int fetch_comb_binlog_start (struct tgl_state *TLS, void *extra) { + return 0; +} + +/* {{{ DC option */ +static int fetch_comb_binlog_dc_option (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + vlogprintf (E_NOTICE, "DC%d '%.*s' update: %.*s:%d\n", + DS_LVAL (DS_U->dc), + DS_RSTR (DS_U->name), + DS_RSTR (DS_U->ip), + DS_LVAL (DS_U->port) + ); + + tglmp_alloc_dc (TLS, + 0, + DS_LVAL (DS_U->dc), + DS_STR_DUP (DS_U->ip), + DS_LVAL (DS_U->port) + ); + return 0; +} + +static int fetch_comb_binlog_dc_option_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + vlogprintf (E_NOTICE, "DC%d '%.*s' update: %.*s:%d\n", + DS_LVAL (DS_U->dc), + DS_RSTR (DS_U->name), + DS_RSTR (DS_U->ip), + DS_LVAL (DS_U->port) + ); + + tglmp_alloc_dc (TLS, + DS_LVAL (DS_U->flags), + DS_LVAL (DS_U->dc), + DS_STR_DUP (DS_U->ip), + DS_LVAL (DS_U->port) + ); + return 0; +} +/* }}} */ + +/* {{{ Auth key */ +static int fetch_comb_binlog_auth_key (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + int num = DS_LVAL (DS_U->dc); + assert (num > 0 && num <= MAX_DC_ID); + assert (TLS->DC_list[num]); + + tglf_fetch_int_tuple ((void *)TLS->DC_list[num]->auth_key, DS_U->key->key, 64); + + static unsigned char sha1_buffer[20]; + SHA1 ((void *)TLS->DC_list[num]->auth_key, 256, sha1_buffer); + TLS->DC_list[num]->auth_key_id = *(long long *)(sha1_buffer + 12); + + TLS->DC_list[num]->flags |= TGLDCF_AUTHORIZED; + return 0; +} +/* }}} */ + +/* {{{ Default dc */ +static int fetch_comb_binlog_default_dc (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + int num = DS_LVAL (DS_U->dc); + assert (num > 0 && num <= MAX_DC_ID); + TLS->DC_working = TLS->DC_list[num]; + TLS->dc_working_num = num; + return 0; +} +/* }}} */ + +/* {{{ DC signed */ +static int fetch_comb_binlog_dc_signed (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + int num = DS_LVAL (DS_U->dc); + assert (num > 0 && num <= MAX_DC_ID); + assert (TLS->DC_list[num]); + TLS->DC_list[num]->flags |= TGLDCF_LOGGED_IN; + return 0; +} +/* }}} */ + +/* {{{ our user_id */ +static int fetch_comb_binlog_our_id (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + TLS->our_id = DS_LVAL (DS_U->id); + assert (TLS->our_id > 0); + if (TLS->callback.our_id) { + TLS->callback.our_id (TLS, TLS->our_id); + } + return 0; +} +/* }}} */ + +/* {{{ Set DH params */ +static int fetch_comb_binlog_set_dh_params (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + if (TLS->encr_prime) { tfree (TLS->encr_prime, 256); BN_free (TLS->encr_prime_bn); } + + TLS->encr_root = DS_LVAL (DS_U->root); + TLS->encr_prime = talloc (256); + tglf_fetch_int_tuple ((void *)TLS->encr_prime, DS_U->prime->key, 64); + + TLS->encr_prime_bn = BN_new (); + BN_bin2bn ((void *)TLS->encr_prime, 256, TLS->encr_prime_bn); + TLS->encr_param_version = DS_LVAL (DS_U->version); + + assert (tglmp_check_DH_params (TLS, TLS->encr_prime_bn, TLS->encr_root) >= 0); + + return 0; +} +/* }}} */ + +/* {{{ Set pts, qts, date, seq */ +static int fetch_comb_binlog_set_pts (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + TLS->pts = DS_LVAL (DS_U->pts); + return 0; +} + +static int fetch_comb_binlog_set_qts (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + TLS->qts = DS_LVAL (DS_U->qts); + return 0; +} + +static int fetch_comb_binlog_set_date (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + TLS->date = DS_LVAL (DS_U->date); + return 0; +} + +static int fetch_comb_binlog_set_seq (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + TLS->seq = DS_LVAL (DS_U->seq); + return 0; +} +/* }}} */ + +/* {{{ delete user */ +static int fetch_comb_binlog_user_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->id)); + tgl_peer_t *U = tgl_peer_get (TLS, id); + assert (U); + U->flags |= TGLUF_DELETED; + + if (TLS->callback.user_update) { + TLS->callback.user_update (TLS, (void *)U, TGL_UPDATE_DELETED); + } + return 0; +} +/* }}} */ + +/* {{{ delete secret chat */ +static int fetch_comb_binlog_encr_chat_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id)); + tgl_peer_t *_U = tgl_peer_get (TLS, id); + assert (_U); + struct tgl_secret_chat *U = &_U->encr_chat; + memset (U->key, 0, sizeof (U->key)); + U->flags |= TGLPF_DELETED; + U->state = sc_deleted; + if (U->g_key) { + tfree_secure (U->g_key, 256); + U->g_key = 0; + } + + if (TLS->callback.secret_chat_update) { + TLS->callback.secret_chat_update (TLS, U, TGL_UPDATE_DELETED); + } + return 0; +} +/* }}} */ + +static int fetch_comb_binlog_user_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->id)); + tgl_peer_t *_U = tgl_peer_get (TLS, id); + + int flags = DS_LVAL (DS_U->flags); + + unsigned updates = 0; + + if (flags & TGLPF_CREATE) { + if (!_U) { + _U = talloc0 (sizeof (*_U)); + _U->id = id; + tglp_insert_encrypted_chat (TLS, _U); + } else { + assert (!(_U->flags & TGLPF_CREATED)); + } + updates |= TGL_UPDATE_CREATED; + } else { + assert (_U->flags & TGLPF_CREATED); + } + + struct tgl_user *U = (void *)_U; + + if ((flags & 0xff) != (U->flags & 0xff)) { + updates |= TGL_UPDATE_FLAGS; + } + U->flags = flags & 0xffff; + + if (DS_U->access_hash) { + U->access_hash = DS_LVAL (DS_U->access_hash); + updates |= TGL_UPDATE_ACCESS_HASH; + } + + if (DS_U->first_name) { + if (U->first_name) { + tfree_str (U->first_name); + } + U->first_name = DS_STR_DUP (DS_U->first_name); + if (U->last_name) { + tfree_str (U->last_name); + } + U->last_name = DS_STR_DUP (DS_U->last_name); + + updates |= TGL_UPDATE_NAME; + + if (U->print_name) { + tglp_peer_delete_name (TLS, (void *)U); + tfree_str (U->print_name); + } + U->print_name = TLS->callback.create_print_name (TLS, U->id, U->first_name, U->last_name, 0, 0); + tglp_peer_insert_name (TLS, (void *)U); + } + + if (DS_U->phone) { + if (U->phone) { + tfree_str (U->phone); + } + U->phone = DS_STR_DUP (DS_U->phone); + updates |= TGL_UPDATE_PHONE; + } + + if (DS_U->username) { + if (U->username) { + tfree_str (U->username); + } + U->username = DS_STR_DUP (DS_U->username); + updates |= TGL_UPDATE_USERNAME; + } + + if (DS_U->photo) { + if (U->photo) { + tgls_free_photo (TLS, U->photo); + } + U->photo = tglf_fetch_alloc_photo_new (TLS, DS_U->photo); + U->flags |= TGLUF_HAS_PHOTO; + //updates |= TGL_UPDATE_PHOTO; + } + + if (DS_U->user_photo) { + U->photo_id = DS_LVAL (DS_U->user_photo->photo_id); + tglf_fetch_file_location_new (TLS, &U->photo_big, DS_U->user_photo->photo_big); + tglf_fetch_file_location_new (TLS, &U->photo_small, DS_U->user_photo->photo_small); + updates |= TGL_UPDATE_PHOTO; + } + + if (DS_U->real_first_name) { + if (U->real_first_name) { + tfree_str (U->real_first_name); + } + U->real_first_name = DS_STR_DUP (DS_U->real_first_name); + if (U->real_last_name) { + tfree_str (U->real_last_name); + } + U->real_last_name = DS_STR_DUP (DS_U->real_last_name); + + updates |= TGL_UPDATE_REAL_NAME; + } + + if (DS_U->last_read_in) { + U->last_read_in = DS_LVAL (DS_U->last_read_in); + tgls_messages_mark_read (TLS, U->last, 0, U->last_read_in); + } + + if (DS_U->last_read_out) { + U->last_read_out = DS_LVAL (DS_U->last_read_out); + tgls_messages_mark_read (TLS, U->last, TGLMF_OUT, U->last_read_out); + } + + if (DS_U->bot_info) { + if (U->bot_info) { + tgls_free_bot_info (TLS, U->bot_info); + } + U->bot_info = tglf_fetch_alloc_bot_info (TLS, DS_U->bot_info); + } + + if (TLS->callback.user_update && updates) { + TLS->callback.user_update (TLS, U, updates); + } + + return 0; +} + +static int fetch_comb_binlog_encr_chat_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id)); + tgl_peer_t *_U = tgl_peer_get (TLS, id); + + int flags = DS_LVAL (DS_U->flags); + + unsigned updates = 0; + + if (flags & TGLPF_CREATE) { + if (!_U) { + _U = talloc0 (sizeof (*_U)); + _U->id = id; + tglp_insert_encrypted_chat (TLS, _U); + } else { + assert (!(_U->flags & TGLPF_CREATED)); + } + updates |= TGL_UPDATE_CREATED; + } else { + assert (_U->flags & TGLPF_CREATED); + } + + struct tgl_secret_chat *U = (void *)_U; + + if ((flags & 0xff) != (U->flags & 0xff)) { + updates |= TGL_UPDATE_FLAGS; + } + U->flags = flags & 0xffff; + + if (DS_U->access_hash) { + U->access_hash = DS_LVAL (DS_U->access_hash); + updates |= TGL_UPDATE_ACCESS_HASH; + } + + if (DS_U->date) { + U->date = DS_LVAL (DS_U->date); + } + + if (DS_U->admin) { + U->admin_id = DS_LVAL (DS_U->admin); + } + + if (DS_U->user_id) { + U->user_id = DS_LVAL (DS_U->user_id); + } + + if (DS_U->key_fingerprint) { + U->key_fingerprint = DS_LVAL (DS_U->key_fingerprint); + } + + if (DS_U->in_seq_no) { + U->in_seq_no = DS_LVAL (DS_U->in_seq_no); + U->out_seq_no = DS_LVAL (DS_U->out_seq_no); + U->last_in_seq_no = DS_LVAL (DS_U->last_in_seq_no); + } + + tgl_peer_t *Us = tgl_peer_get (TLS, TGL_MK_USER (U->user_id)); + + if (!U->print_name) { + if (Us) { + U->print_name = TLS->callback.create_print_name (TLS, id, "!", Us->user.first_name, Us->user.last_name, 0); + } else { + static char buf[100]; + tsnprintf (buf, 99, "user#%d", U->user_id); + U->print_name = TLS->callback.create_print_name (TLS, id, "!", buf, 0, 0); + } + tglp_peer_insert_name (TLS, (void *)U); + } + + if (DS_U->g_key) { + if (!U->g_key) { + U->g_key = talloc (256); + } + tglf_fetch_int_tuple ((void *)U->g_key, DS_U->g_key->key, 64); + } + + if (DS_U->key) { + tglf_fetch_int_tuple (U->key, DS_U->key->key, 64); + } + + if (DS_U->state) { + if (U->state == sc_waiting && DS_LVAL (DS_U->state) == sc_ok) { + tgl_do_create_keys_end (TLS, U); + } + if ((int)U->state != DS_LVAL (DS_U->state)) { + switch (DS_LVAL (DS_U->state)) { + case sc_request: + updates |= TGL_UPDATE_REQUESTED; + break; + case sc_ok: + updates |= TGL_UPDATE_WORKING; + vlogprintf (E_WARNING, "Secret chat in ok state\n"); + break; + default: + break; + } + } + U->state = DS_LVAL (DS_U->state); + } + + if (TLS->callback.secret_chat_update && updates) { + TLS->callback.secret_chat_update (TLS, U, updates); + } + + return 0; +} + +static int fetch_comb_binlog_chat_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id)); + tgl_peer_t *_U = tgl_peer_get (TLS, id); + + int flags = DS_LVAL (DS_U->flags); + + unsigned updates = 0; + + if (flags & (1 << 16)) { + if (!_U) { + _U = talloc0 (sizeof (*_U)); + _U->id = id; + tglp_insert_chat (TLS, _U); + } else { + assert (!(_U->flags & TGLPF_CREATED)); + } + updates |= TGL_UPDATE_CREATED; + } else { + assert (_U->flags & TGLPF_CREATED); + } + + struct tgl_chat *C = &_U->chat; + + if ((flags & 0xff) != (C->flags & 0xff)) { + updates |= TGL_UPDATE_FLAGS; + } + C->flags = flags & 0xffff; + + if (DS_U->title) { + if (C->title) { + tfree_str (C->title); + } + C->title = DS_STR_DUP (DS_U->title); + + if (C->print_title) { + tglp_peer_delete_name (TLS, (void *)C); + tfree_str (C->print_title); + } + C->print_title = TLS->callback.create_print_name (TLS, C->id, C->title, 0, 0, 0); + tglp_peer_insert_name (TLS, (void *)C); + + updates |= TGL_UPDATE_TITLE; + } + + if (DS_U->user_num) { + C->users_num = DS_LVAL (DS_U->user_num); + } + + if (DS_U->date) { + C->date = DS_LVAL (DS_U->date); + } + + if (DS_U->chat_photo) { + tglf_fetch_file_location_new (TLS, &C->photo_big, DS_U->chat_photo->photo_big); + tglf_fetch_file_location_new (TLS, &C->photo_small, DS_U->chat_photo->photo_small); + updates |= TGL_UPDATE_PHOTO; + } + + if (DS_U->photo) { + if (C->photo) { + tgls_free_photo (TLS, C->photo); + } + C->photo = tglf_fetch_alloc_photo_new (TLS, DS_U->photo); + C->flags |= TGLPF_HAS_PHOTO; + updates |= TGL_UPDATE_PHOTO; + } + + if (DS_U->admin) { + C->admin_id = DS_LVAL (DS_U->admin); + updates |= TGL_UPDATE_ADMIN; + } + + if (DS_U->version) { + C->version = DS_LVAL (DS_U->version); + + if (C->user_list) { tfree (C->user_list, 12 * C->user_list_size); } + + C->user_list_size = DS_LVAL (DS_U->participants->cnt); + C->user_list = talloc (12 * C->user_list_size); + + int i; + for (i = 0; i < C->user_list_size; i++) { + C->user_list[i].user_id = DS_LVAL (DS_U->participants->data[i]->user_id); + C->user_list[i].inviter_id = DS_LVAL (DS_U->participants->data[i]->inviter_id); + C->user_list[i].date = DS_LVAL (DS_U->participants->data[i]->date); + } + + updates |= TGL_UPDATE_MEMBERS; + } + + if (DS_U->last_read_in) { + C->last_read_in = DS_LVAL (DS_U->last_read_in); + tgls_messages_mark_read (TLS, C->last, 0, C->last_read_in); + } + + if (DS_U->last_read_out) { + C->last_read_out = DS_LVAL (DS_U->last_read_out); + tgls_messages_mark_read (TLS, C->last, TGLMF_OUT, C->last_read_out); + } + + + if (TLS->callback.chat_update && updates) { + TLS->callback.chat_update (TLS, C, updates); + } + return 0; +} + +static int fetch_comb_binlog_chat_add_participant (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id)); + tgl_peer_t *_C = tgl_peer_get (TLS, id); + assert (_C && (_C->flags & TGLPF_CREATED)); + struct tgl_chat *C = &_C->chat; + + int version = DS_LVAL (DS_U->version); + int user = DS_LVAL (DS_U->user_id); + int inviter = DS_LVAL (DS_U->inviter_id); + int date = DS_LVAL (DS_U->date); + + + if (C->user_list_version > version) { return 0; } + + int i; + for (i = 0; i < C->user_list_size; i++) { + if (C->user_list[i].user_id == user) { + return 0; + } + } + + C->user_list_size ++; + C->user_list = trealloc (C->user_list, 12 * C->user_list_size - 12, 12 * C->user_list_size); + C->user_list[C->user_list_size - 1].user_id = user; + C->user_list[C->user_list_size - 1].inviter_id = inviter; + C->user_list[C->user_list_size - 1].date = date; + C->user_list_version = version; + + if (TLS->callback.chat_update) { + TLS->callback.chat_update (TLS, C, TGL_UPDATE_MEMBERS); + } + return 0; +} + +static int fetch_comb_binlog_chat_del_participant (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_id_t id = TGL_MK_CHAT (DS_LVAL (DS_U->id)); + tgl_peer_t *_C = tgl_peer_get (TLS, id); + assert (_C && (_C->flags & TGLPF_CREATED)); + struct tgl_chat *C = &_C->chat; + + int version = DS_LVAL (DS_U->version); + int user = DS_LVAL (DS_U->user_id); + if (C->user_list_version > version) { return 0; } + + int i; + for (i = 0; i < C->user_list_size; i++) { + if (C->user_list[i].user_id == user) { + struct tgl_chat_user t; + t = C->user_list[i]; + C->user_list[i] = C->user_list[C->user_list_size - 1]; + C->user_list[C->user_list_size - 1] = t; + } + } + if (C->user_list[C->user_list_size - 1].user_id != user) { return 0; } + + assert (C->user_list[C->user_list_size - 1].user_id == user); + C->user_list_size --; + C->user_list = trealloc (C->user_list, 12 * C->user_list_size + 12, 12 * C->user_list_size); + C->user_list_version = version; + + if (TLS->callback.chat_update) { + TLS->callback.chat_update (TLS, C, TGL_UPDATE_MEMBERS); + } + return 0; +} + +static int fetch_comb_binlog_message_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid)); + int flags = DS_LVAL (DS_U->flags); + + if (flags & (1 << 16)) { + if (!M) { + M = tglm_message_alloc (TLS, DS_LVAL (DS_U->lid)); + } + assert (!(M->flags & TGLMF_CREATED)); + } else { + assert (M->flags & TGLMF_CREATED); + } + + assert (flags & TGLMF_CREATED); + assert (!(M->flags & TGLMF_ENCRYPTED)); + assert (!(flags & TGLMF_ENCRYPTED)); + + if ((M->flags & TGLMF_PENDING) && !(flags & TGLMF_PENDING)){ + tglm_message_remove_unsent (TLS, M); + } + if (!(M->flags & TGLMF_PENDING) && (flags & TGLMF_PENDING)){ + tglm_message_insert_unsent (TLS, M); + } + + if ((M->flags & TGLMF_UNREAD) && !(flags & TGLMF_UNREAD)) { + M->flags = (flags & 0xffff) | TGLMF_UNREAD; + } else { + M->flags = (flags & 0xffff); + } + + if (DS_U->from_id) { + M->from_id = TGL_MK_USER (DS_LVAL (DS_U->from_id)); + } + if (DS_U->to_type) { + assert (flags & 0x10000); + M->to_id = tgl_set_peer_id (DS_LVAL (DS_U->to_type), DS_LVAL (DS_U->to_id)); + assert (DS_LVAL (DS_U->to_type) != TGL_PEER_ENCR_CHAT); + } + + if (DS_U->date) { + M->date = DS_LVAL (DS_U->date); + } + + if (DS_U->fwd_from_id) { + M->fwd_from_id = TGL_MK_USER (DS_LVAL (DS_U->fwd_from_id)); + M->fwd_date = DS_LVAL (DS_U->fwd_date); + } + + if (DS_U->action) { + tglf_fetch_message_action_new (TLS, &M->action, DS_U->action); + M->flags |= TGLMF_SERVICE; + } + + if (DS_U->message) { + M->message_len = DS_U->message->len; + M->message = DS_STR_DUP (DS_U->message); + assert (!(M->flags & TGLMF_SERVICE)); + } + + if (DS_U->media) { + tglf_fetch_message_media_new (TLS, &M->media, DS_U->media); + assert (!(M->flags & TGLMF_SERVICE)); + } + + if (DS_U->reply_id) { + M->reply_id = DS_LVAL (DS_U->reply_id); + } + + if (flags & 0x10000) { + tglm_message_insert (TLS, M); + } + + if (!(flags & TGLMF_UNREAD) && (M->flags & TGLMF_UNREAD)) { + tgls_messages_mark_read (TLS, M, M->flags & TGLMF_OUT, M->id); + } + + if (DS_U->reply_markup) { + M->reply_markup = tglf_fetch_alloc_reply_markup (TLS, M->next, DS_U->reply_markup); + } + return 0; +} + +static int fetch_comb_binlog_message_encr_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid)); + int flags = DS_LVAL (DS_U->flags); + + if (flags & (1 << 16)) { + if (!M) { + M = tglm_message_alloc (TLS, DS_LVAL (DS_U->lid)); + } else { + assert (!(M->flags & TGLMF_CREATED)); + } + assert (!(M->flags & TGLMF_CREATED)); + } else { + assert (M->flags & TGLMF_CREATED); + } + + assert (flags & TGLMF_CREATED); + assert (flags & TGLMF_ENCRYPTED); + + if ((M->flags & TGLMF_PENDING) && !(flags & TGLMF_PENDING)){ + tglm_message_remove_unsent (TLS, M); + } + if (!(M->flags & TGLMF_PENDING) && (flags & TGLMF_PENDING)){ + tglm_message_insert_unsent (TLS, M); + } + + M->flags = flags & 0xffff; + + if (DS_U->from_id) { + M->from_id = TGL_MK_USER (DS_LVAL (DS_U->from_id)); + } + if (DS_U->to_type) { + assert (flags & 0x10000); + M->to_id = tgl_set_peer_id (DS_LVAL (DS_U->to_type), DS_LVAL (DS_U->to_id)); + } + + if (DS_U->date) { + M->date = DS_LVAL (DS_U->date); + } + + struct tgl_secret_chat *E = (void *)tgl_peer_get (TLS, M->to_id); + assert (E); + + if (DS_U->message) { + M->message_len = DS_U->message->len; + M->message = DS_STR_DUP (DS_U->message); + assert (!(M->flags & TGLMF_SERVICE)); + } + + if (DS_U->encr_media) { + tglf_fetch_message_media_encrypted_new (TLS, &M->media, DS_U->encr_media); + assert (!(M->flags & TGLMF_SERVICE)); + } + + if (DS_U->encr_action) { + tglf_fetch_message_action_encrypted_new (TLS, &M->action, DS_U->encr_action); + M->flags |= TGLMF_SERVICE; + } + + if (DS_U->file) { + tglf_fetch_encrypted_message_file_new (TLS, &M->media, DS_U->file); + assert (!(M->flags & TGLMF_SERVICE)); + } + + if (DS_U->encr_action && !(M->flags & TGLMF_OUT) && M->action.type == tgl_message_action_notify_layer) { + E->layer = M->action.layer; + } + + if ((flags & TGLMF_CREATE) && (flags & TGLMF_OUT)) { + E->out_seq_no ++; + } + + if (flags & 0x10000) { + tglm_message_insert (TLS, M); + } + return 0; +} + +static int fetch_comb_binlog_set_msg_id (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->old_id)); + assert (M); + if (M->flags & TGLMF_PENDING) { + tglm_message_remove_unsent (TLS, M); + M->flags &= ~TGLMF_PENDING; + } + + tglm_message_remove_tree (TLS, M); + tglm_message_del_peer (TLS, M); + + M->id = DS_LVAL (DS_U->new_id); + if (tgl_message_get (TLS, M->id)) { + tglm_message_del_use (TLS, M); + tgls_free_message (TLS, M); + } else { + tglm_message_insert_tree (TLS, M); + tglm_message_add_peer (TLS, M); + } + return 0; +} + +static int fetch_comb_binlog_message_delete (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid)); + assert (M); + if (M->flags & TGLMF_PENDING) { + tglm_message_remove_unsent (TLS, M); + M->flags &= ~TGLMF_PENDING; + } + tglm_message_remove_tree (TLS, M); + tglm_message_del_peer (TLS, M); + tglm_message_del_use (TLS, M); + tgls_free_message (TLS, M); + return 0; +} + +static int fetch_comb_binlog_msg_update (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->lid)); + if (!M) { return 0; } + assert (M); + + if (!(M->flags & TGLMF_ENCRYPTED)) { + if (TLS->max_msg_id < M->id) { + TLS->max_msg_id = M->id; + } + } + + if (TLS->callback.msg_receive) { + TLS->callback.msg_receive (TLS, M); + } + return 0; +} + +static int fetch_comb_binlog_reset_authorization (struct tgl_state *TLS, void *extra) { + int i; + for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i]) { + struct tgl_dc *D = TLS->DC_list[i]; + D->flags = 0; + D->state = st_init; + D->auth_key_id = D->temp_auth_key_id = 0; + } + TLS->seq = 0; + TLS->qts = 0; + return 0; +} + +static int fetch_comb_binlog_encr_chat_exchange_new (struct tgl_state *TLS, struct tl_ds_binlog_update *DS_U) { + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->id))); + assert (P); + if (DS_U->state) { + P->encr_chat.exchange_state = DS_LVAL (DS_U->state); + } + if (DS_U->exchange_id) { + P->encr_chat.exchange_id = DS_LVAL (DS_U->exchange_id); + } + + static unsigned char sha_buffer[20]; + switch (P->encr_chat.exchange_state) { + case tgl_sce_requested: + tglf_fetch_int_tuple (P->encr_chat.exchange_key, DS_U->key->key, 64); + break; + case tgl_sce_accepted: + tglf_fetch_int_tuple (P->encr_chat.exchange_key, DS_U->key->key, 64); + + SHA1 ((unsigned char *)P->encr_chat.exchange_key, 256, sha_buffer); + P->encr_chat.exchange_key_fingerprint = *(long long *)(sha_buffer + 12); + break; + case tgl_sce_committed: + memcpy (P->encr_chat.exchange_key, P->encr_chat.key, 256); + P->encr_chat.exchange_key_fingerprint = P->encr_chat.key_fingerprint; + + tglf_fetch_int_tuple (P->encr_chat.key, DS_U->key->key, 64); + + SHA1 ((unsigned char *)P->encr_chat.key, 256, sha_buffer); + P->encr_chat.key_fingerprint = *(long long *)(sha_buffer + 12); + break; + case tgl_sce_confirmed: + P->encr_chat.exchange_state = tgl_sce_none; + if (P->encr_chat.exchange_state != tgl_sce_committed) { + memcpy (P->encr_chat.key, P->encr_chat.exchange_key, 256); + P->encr_chat.key_fingerprint = P->encr_chat.exchange_key_fingerprint; + } + break; + case tgl_sce_aborted: + P->encr_chat.exchange_state = tgl_sce_none; + if (P->encr_chat.exchange_state == tgl_sce_committed) { + memcpy (P->encr_chat.key, P->encr_chat.exchange_key, 256); + P->encr_chat.key_fingerprint = P->encr_chat.exchange_key_fingerprint; + } + break; + default: + assert (0); + } + return 0; +} + +#define FETCH_COMBINATOR_FUNCTION(NAME) \ + case CODE_ ## NAME:\ + ok = fetch_comb_ ## NAME (TLS, DS_U); \ + break; \ + + +static void replay_log_event (struct tgl_state *TLS) { + assert (rptr < wptr); + int op = *rptr; + + vlogprintf (E_DEBUG, "replay_log_event: log_pos=%"_PRINTF_INT64_"d, op=0x%08x\n", binlog_pos, op); + + in_ptr = rptr; + in_end = wptr; + if (skip_type_any (TYPE_TO_PARAM (binlog_update)) < 0) { + vlogprintf (E_ERROR, "Can not replay at %"_PRINTF_INT64_"d (magic = 0x%08x)\n", binlog_pos, *rptr); + assert (0); + } + int *end = in_ptr; + in_end = in_ptr; + in_ptr = rptr; + struct tl_ds_binlog_update *DS_U = fetch_ds_type_binlog_update (TYPE_TO_PARAM (binlog_update)); + assert (in_ptr == end); + + int ok = -1; + + switch (op) { + FETCH_COMBINATOR_FUNCTION (binlog_start) + FETCH_COMBINATOR_FUNCTION (binlog_dc_option) + FETCH_COMBINATOR_FUNCTION (binlog_dc_option_new) + FETCH_COMBINATOR_FUNCTION (binlog_auth_key) + FETCH_COMBINATOR_FUNCTION (binlog_default_dc) + FETCH_COMBINATOR_FUNCTION (binlog_dc_signed) + + FETCH_COMBINATOR_FUNCTION (binlog_our_id) + + FETCH_COMBINATOR_FUNCTION (binlog_set_dh_params) + FETCH_COMBINATOR_FUNCTION (binlog_set_pts) + FETCH_COMBINATOR_FUNCTION (binlog_set_qts) + FETCH_COMBINATOR_FUNCTION (binlog_set_date) + FETCH_COMBINATOR_FUNCTION (binlog_set_seq) + + FETCH_COMBINATOR_FUNCTION (binlog_user_new) + FETCH_COMBINATOR_FUNCTION (binlog_user_delete) + + FETCH_COMBINATOR_FUNCTION (binlog_chat_new) + //FETCH_COMBINATOR_FUNCTION (binlog_chat_delete) + + FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_new) + FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_delete) + FETCH_COMBINATOR_FUNCTION (binlog_chat_add_participant) + FETCH_COMBINATOR_FUNCTION (binlog_chat_del_participant) + + FETCH_COMBINATOR_FUNCTION (binlog_message_new) + FETCH_COMBINATOR_FUNCTION (binlog_message_encr_new) + FETCH_COMBINATOR_FUNCTION (binlog_message_delete) + FETCH_COMBINATOR_FUNCTION (binlog_set_msg_id) + + FETCH_COMBINATOR_FUNCTION (binlog_encr_chat_exchange_new) + + FETCH_COMBINATOR_FUNCTION (binlog_msg_update) + FETCH_COMBINATOR_FUNCTION (binlog_reset_authorization) + default: + vlogprintf (E_ERROR, "Unknown op 0x%08x\n", op); + assert (0); + } + assert (ok >= 0); + + free_ds_type_binlog_update (DS_U, TYPE_TO_PARAM (binlog_update)); + assert (in_ptr == end); + //assert (in_ptr == in_end); + binlog_pos += (in_ptr - rptr) * 4; + rptr = in_ptr; +} + +static void create_new_binlog (struct tgl_state *TLS) { + clear_packet (); + //static int s[1000]; + + //packet_ptr = s; + out_int (CODE_binlog_start); + if (TLS->test_mode) { + out_int (CODE_binlog_dc_option); + out_int (1); + out_string (""); + out_string (TG_SERVER_TEST_1); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (2); + out_string (""); + out_string (TG_SERVER_TEST_2); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (3); + out_string (""); + out_string (TG_SERVER_TEST_3); + out_int (443); + out_int (CODE_binlog_default_dc); + out_int (2); + } else { + out_int (CODE_binlog_dc_option); + out_int (1); + out_string (""); + out_string (TG_SERVER_1); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (2); + out_string (""); + out_string (TG_SERVER_2); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (3); + out_string (""); + out_string (TG_SERVER_3); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (4); + out_string (""); + out_string (TG_SERVER_4); + out_int (443); + out_int (CODE_binlog_dc_option); + out_int (5); + out_string (""); + out_string (TG_SERVER_5); + out_int (443); + out_int (CODE_binlog_default_dc); + out_int (2); + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + if(_sopen_s (&fd, TLS->binlog_name, _O_WRONLY | _O_EXCL | _O_CREAT, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0 ) { +#else + int fd = open (TLS->binlog_name, O_WRONLY | O_EXCL | O_CREAT, 0600); + if (fd < 0) { +#endif + perror ("Write new binlog"); + exit (2); + } + assert (write (fd, packet_buffer, (packet_ptr - packet_buffer) * 4) == (packet_ptr - packet_buffer) * 4); + close (fd); +} + + +void tgl_replay_log (struct tgl_state *TLS) { + if (!TLS->binlog_enabled) { return; } +#if defined(WIN32) || defined(_WIN32) + if (INVALID_FILE_ATTRIBUTES == GetFileAttributesA (TLS->binlog_name) && GetLastError () == ERROR_FILE_NOT_FOUND) { +#else + if (access (TLS->binlog_name, F_OK) < 0) { +#endif + printf ("No binlog found. Creating new one\n"); + create_new_binlog (TLS); + } +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + if (_sopen_s(&fd, TLS->binlog_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0) { +#elif defined(WIN32) || defined(_WIN32) + int fd = open (TLS->binlog_name, O_RDONLY | O_BINARY); + if (fd < 0) { +#else + int fd = open (TLS->binlog_name, O_RDONLY); + if (fd < 0) { +#endif + perror ("binlog open"); + exit (2); + } + int end = 0; + in_replay_log = 1; + while (1) { + if (!end && wptr - rptr < MAX_LOG_EVENT_SIZE / 4) { + if (wptr == rptr) { + wptr = rptr = binlog_buffer; + } else { + int x = wptr - rptr; + memcpy (binlog_buffer, rptr, 4 * x); + wptr -= (rptr - binlog_buffer); + rptr = binlog_buffer; + } + int l = (binlog_buffer + BINLOG_BUFFER_SIZE - wptr) * 4; + int k = read (fd, wptr, l); + if (k < 0) { + perror ("read binlog"); + exit (2); + } + assert (!(k & 3)); + if (k < l) { + end = 1; + } + wptr += (k / 4); + } + if (wptr == rptr) { break; } + replay_log_event (TLS); + } + in_replay_log = 0; + close (fd); +} + +//static int b_packet_buffer[PACKET_BUFFER_SIZE]; + +void tgl_reopen_binlog_for_writing (struct tgl_state *TLS) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (_sopen_s (&TLS->binlog_fd, TLS->binlog_name, _O_WRONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE) != 0) { +#elif defined(WIN32) || defined(_WIN32) + TLS->binlog_fd = open (TLS->binlog_name, O_WRONLY | _O_BINARY); + if (TLS->binlog_fd < 0) { +#else + TLS->binlog_fd = open (TLS->binlog_name, O_WRONLY); + if (TLS->binlog_fd < 0) { +#endif + perror ("binlog open"); + exit (2); + } + + assert (lseek (TLS->binlog_fd, binlog_pos, SEEK_SET) == binlog_pos); +#if defined(WIN32) || defined(_WIN32) + HANDLE h = INVALID_HANDLE_VALUE; + DWORD size_lower, size_upper; + DWORD err = 0; + OVERLAPPED ovlp; + int flags = 0; + + h = (HANDLE)_get_osfhandle(TLS->binlog_fd); + if (h == INVALID_HANDLE_VALUE) { + errno = EBADF; + goto error; + } + + size_lower = GetFileSize (h, &size_upper); + if (size_lower == INVALID_FILE_SIZE) { + goto get_err; + } + + memset (&ovlp, 0, sizeof ovlp); + flags |= LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY; + + if (!LockFileEx (h, flags, 0, size_lower, size_upper, &ovlp)) { + goto get_err; + } + return; + +error: + perror ("get lock"); + exit(2); + +get_err: + err = GetLastError(); + switch (err) + { + case ERROR_LOCK_VIOLATION: + errno = EAGAIN; + break; + case ERROR_NOT_ENOUGH_MEMORY: + errno = ENOMEM; + break; + case ERROR_BAD_COMMAND: + errno = EINVAL; + break; + default: + errno = err; + } + goto error; +#else + if (flock (TLS->binlog_fd, LOCK_EX | LOCK_NB) < 0) { + perror ("get lock"); + exit (2); + } +#endif +} + +static void add_log_event (struct tgl_state *TLS, const int *data, int len) { + vlogprintf (E_DEBUG, "Add log event: magic = 0x%08x, len = %d\n", data[0], len); + assert (!(len & 3)); + int *ev = talloc (len); + memcpy (ev, data, len); + rptr = (void *)ev; + wptr = rptr + (len / 4); + int *in = in_ptr; + int *end = in_end; + replay_log_event (TLS); + if (rptr != wptr) { + vlogprintf (E_ERROR, "Unread %"_PRINTF_INT64_"d ints. Len = %d\n", (long long)(wptr - rptr), len); + assert (rptr == wptr); + } + if (TLS->binlog_enabled) { + assert (TLS->binlog_fd > 0); + assert (write (TLS->binlog_fd, ev, len) == len); + } + tfree (ev, len); + in_ptr = in; + in_end = end; +} + +void bl_do_dc_option_new (struct tgl_state *TLS, int flags, int id, const char *name, int l1, const char *ip, int l2, int port) { + struct tgl_dc *DC = TLS->DC_list[id]; + + if (DC) { + struct tgl_dc_option *O = DC->options[flags & 3]; + while (O) { + if (!strncmp (O->ip, ip, l2)) { + return; + } + O = O->next; + } + } + + clear_packet (); + out_int (CODE_binlog_dc_option_new); + out_int (flags); + out_int (id); + + out_cstring (name, l1); + out_cstring (ip, l2); + out_int (port); + + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_dc_option (struct tgl_state *TLS, int id, const char *name, int l1, const char *ip, int l2, int port) { + bl_do_dc_option_new (TLS, 0, id, name, l1, ip, l2, port); +} + +void bl_do_set_working_dc (struct tgl_state *TLS, int num) { + int *ev = alloc_log_event (8); + ev[0] = CODE_binlog_default_dc; + ev[1] = num; + add_log_event (TLS, ev, 8); +} + +void bl_do_dc_signed (struct tgl_state *TLS, int id) { + clear_packet (); + out_int (CODE_binlog_dc_signed); + out_int (id); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_our_id (struct tgl_state *TLS, int id) { + if (TLS->our_id) { + assert (TLS->our_id == id); + return; + } + + clear_packet (); + out_int (CODE_binlog_our_id); + out_int (id); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_dh_params (struct tgl_state *TLS, int root, unsigned char prime[], int version) { + clear_packet (); + out_int (CODE_binlog_set_dh_params); + out_int (root); + out_ints ((void *)prime, 64); + out_int (version); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_pts (struct tgl_state *TLS, int pts) { + if (TLS->locks & TGL_LOCK_DIFF) { return; } + if (pts <= TLS->pts) { return; } + + clear_packet (); + out_int (CODE_binlog_set_pts); + out_int (pts); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_qts (struct tgl_state *TLS, int qts) { + if (TLS->locks & TGL_LOCK_DIFF) { return; } + if (qts <= TLS->qts) { return; } + + clear_packet (); + out_int (CODE_binlog_set_qts); + out_int (qts); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_date (struct tgl_state *TLS, int date) { + if (TLS->locks & TGL_LOCK_DIFF) { return; } + if (date <= TLS->date) { return; } + + clear_packet (); + out_int (CODE_binlog_set_date); + out_int (date); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_seq (struct tgl_state *TLS, int seq) { + if (TLS->locks & TGL_LOCK_DIFF) { return; } + if (seq <= TLS->seq) { return; } + + clear_packet (); + out_int (CODE_binlog_set_seq); + out_int (seq); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_msg_id (struct tgl_state *TLS, struct tgl_message *M, int id) { + if (M->id == id) { return; } + + clear_packet (); + out_int (CODE_binlog_set_msg_id); + out_long (M->id); + out_int (id); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_user_delete (struct tgl_state *TLS, struct tgl_user *U) { + if (U->flags & TGLUF_DELETED) { return; } + + clear_packet (); + out_int (CODE_binlog_user_delete); + out_int (tgl_get_peer_id (U->id)); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_encr_chat_delete (struct tgl_state *TLS, struct tgl_secret_chat *U) { + if (!(U->flags & TGLPF_CREATED) || U->state == sc_deleted || U->state == sc_none) { return; } + + clear_packet (); + out_int (CODE_binlog_encr_chat_delete); + out_int (tgl_get_peer_id (U->id)); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_chat_add_user (struct tgl_state *TLS, struct tgl_chat *C, int version, int user, int inviter, int date) { + if (C->user_list_version >= version || !C->user_list_version) { return; } + + clear_packet (); + out_int (CODE_binlog_chat_add_participant); + out_int (tgl_get_peer_id (C->id)); + out_int (version); + out_int (user); + out_int (inviter); + out_int (date); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_chat_del_user (struct tgl_state *TLS, struct tgl_chat *C, int version, int user) { + if (C->user_list_version >= version || !C->user_list_version) { return; } + + clear_packet (); + out_int (CODE_binlog_chat_del_participant); + out_int (tgl_get_peer_id (C->id)); + out_int (version); + out_int (user); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_create_message_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *fwd_from_id, int *fwd_date, int *date, const char *message, int message_len, struct tl_ds_message_media *media, struct tl_ds_message_action *action, int *reply_id, struct tl_ds_reply_markup *reply_markup, int flags) { + clear_packet (); + assert (!(flags & 0xfffe0000)); + + out_int (CODE_binlog_message_new); + int *flags_p = packet_ptr; + out_int (flags); + assert (*flags_p == flags); + + out_long (id); + + if (from_id) { + assert (to_type); + assert (to_id); + (*flags_p) |= (1 << 17); + out_int (*from_id); + out_int (*to_type); + out_int (*to_id); + } + + if (fwd_from_id) { + assert (fwd_date); + (*flags_p) |= (1 << 18); + out_int (*fwd_from_id); + out_int (*fwd_date); + } + + if (date) { + (*flags_p) |= (1 << 19); + out_int (*date); + } + + if (message) { + (*flags_p) |= (1 << 20); + out_cstring (message, message_len); + } + + if (media) { + (*flags_p) |= (1 << 21); + store_ds_type_message_media (media, TYPE_TO_PARAM (message_media)); + } + + if (action) { + (*flags_p) |= (1 << 22); + + store_ds_type_message_action (action, TYPE_TO_PARAM (message_action)); + } + + if (reply_id) { + (*flags_p) |= (1 << 23); + out_int (*reply_id); + } + + if (reply_markup) { + (*flags_p) |= (1 << 24); + store_ds_type_reply_markup (reply_markup, TYPE_TO_PARAM (reply_markup)); + } + + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_create_message_encr_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *date, const char *message, int message_len, struct tl_ds_decrypted_message_media *media, struct tl_ds_decrypted_message_action *action, struct tl_ds_encrypted_file *file, int flags) { + clear_packet (); + assert (!(flags & 0xfffe0000)); + + out_int (CODE_binlog_message_encr_new); + int *flags_p = packet_ptr; + out_int (flags); + assert (flags & TGLMF_ENCRYPTED); + assert (*flags_p == flags); + + out_long (id); + + if (from_id) { + assert (to_id); + assert (to_type); + (*flags_p) |= (1 << 17); + out_int (*from_id); + out_int (*to_type); + out_int (*to_id); + } + + if (date) { + (*flags_p) |= (1 << 19); + out_int (*date); + } + + if (message) { + (*flags_p) |= (1 << 20); + out_cstring (message, message_len); + } + + if (media) { + (*flags_p) |= (1 << 21); + store_ds_type_decrypted_message_media (media, TYPE_TO_PARAM (decrypted_message_media)); + } + + if (action) { + (*flags_p) |= (1 << 22); + store_ds_type_decrypted_message_action (action, TYPE_TO_PARAM (decrypted_message_action)); + } + + if (file) { + (*flags_p) |= (1 << 23); + store_ds_type_encrypted_file (file, TYPE_TO_PARAM (encrypted_file)); + } + + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_message_delete (struct tgl_state *TLS, struct tgl_message *M) { + clear_packet (); + out_int (CODE_binlog_message_delete); + out_long (M->id); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_msg_update (struct tgl_state *TLS, long long id) { + clear_packet (); + out_int (CODE_binlog_msg_update); + out_long (id); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_reset_authorization (struct tgl_state *TLS) { + clear_packet (); + out_int (CODE_binlog_reset_authorization); + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_encr_chat_exchange_new (struct tgl_state *TLS, struct tgl_secret_chat *E, long long *exchange_id, const void *key, int *state) { + clear_packet (); + + out_int (CODE_binlog_encr_chat_exchange_new); + out_int (tgl_get_peer_id (E->id)); + + int *flags_p = packet_ptr; + out_int (0); + + if (exchange_id) { + *flags_p |= (1 << 17); + out_long (*exchange_id); + } + + if (key) { + *flags_p |= (1 << 18); + out_ints ((void *)key, 64); + } + + if (state) { + *flags_p |= (1 << 19); + out_int (*state); + } + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); +} + +void bl_do_set_auth_key (struct tgl_state *TLS, int num, unsigned char *buf) { + int *ev = alloc_log_event (8 + 8 + 256); + ev[0] = CODE_binlog_auth_key; + ev[1] = num; + //*(long long *)(ev + 2) = fingerprint; + memcpy (ev + 2, buf, 256); + add_log_event (TLS, ev, 8 + 256); +} + +void bl_do_user_new (struct tgl_state *TLS, int id, long long *access_hash, const char *first_name, int first_name_len, const char *last_name, int last_name_len, const char *phone, int phone_len, const char *username, int username_len, struct tl_ds_photo *photo, const char *real_first_name, int real_first_name_len, const char *real_last_name, int real_last_name_len, struct tl_ds_user_profile_photo *profile_photo, int *last_read_in, int *last_read_out, struct tl_ds_bot_info *bot_info, int flags) { + tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_USER (id)); + struct tgl_user *P = &PP->user; + + if (flags == TGL_FLAGS_UNCHANGED) { + flags = P->flags & 0xffff; + } + + clear_packet (); + out_int (CODE_binlog_user_new); + + int *flags_p = packet_ptr; + + assert (!(flags & 0xfffe0000)); + out_int (flags); + out_int (id); + + if (access_hash) { + if (!P || P->access_hash != *access_hash) { + out_long (*access_hash); + (*flags_p) |= (1 << 17); + } + } + + if (first_name) { + if (!P || !P->first_name || !P->last_name || mystreq1 (P->first_name, first_name, first_name_len) || mystreq1 (P->last_name, last_name, last_name_len)) { + out_cstring (first_name, first_name_len); + out_cstring (last_name, last_name_len); + + (*flags_p) |= (1 << 18); + } + } + + if (phone) { + if (!P || !P->phone || mystreq1 (P->phone, phone, phone_len)) { + out_cstring (phone, phone_len); + (*flags_p) |= (1 << 19); + } + } + + if (username) { + if (!P || !P->username || mystreq1 (P->username, username, username_len)) { + out_cstring (username, username_len); + (*flags_p) |= (1 << 20); + } + } + + if (photo) { + if (!P || !P->photo || P->photo->id != DS_LVAL (photo->id)) { + store_ds_type_photo (photo, TYPE_TO_PARAM (photo)); + (*flags_p) |= (1 << 21); + } + } + + if (real_first_name) { + assert (real_last_name); + if (!P || !P->real_first_name || !P->real_last_name || mystreq1 (P->real_first_name, real_first_name, real_first_name_len) || mystreq1 (P->real_last_name, real_last_name, real_last_name_len)) { + out_cstring (real_first_name, real_first_name_len); + out_cstring (real_last_name, real_last_name_len); + + (*flags_p) |= (1 << 22); + } + } + + if (profile_photo) { + if (!P || P->photo_id != DS_LVAL (profile_photo->photo_id)) { + store_ds_type_user_profile_photo (profile_photo, TYPE_TO_PARAM (user_profile_photo)); + (*flags_p) |= (1 << 23); + } + } + + if (last_read_in) { + if (!P || P->last_read_in < *last_read_in) { + out_int (*last_read_in); + (*flags_p) |= (1 << 24); + } + } + + if (last_read_out) { + if (!P || P->last_read_out < *last_read_out) { + out_int (*last_read_out); + (*flags_p) |= (1 << 25); + } + } + + if (bot_info) { + if (!P || !P->bot_info || P->bot_info->version != DS_LVAL (bot_info->version)) { + store_ds_type_bot_info (bot_info, TYPE_TO_PARAM (bot_info)); + (*flags_p) |= (1 << 26); + } + } + + if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) { + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); + } +} + +void bl_do_chat_new (struct tgl_state *TLS, int id, const char *title, int title_len, int *user_num, int *date, int *version, struct tl_ds_vector *participants, struct tl_ds_chat_photo *chat_photo, struct tl_ds_photo *photo, int *admin, int *last_read_in, int *last_read_out, int flags) { + tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_CHAT (id)); + struct tgl_chat *P = &PP->chat; + + if (flags == TGL_FLAGS_UNCHANGED) { + flags = P ? (P->flags & 0xffff) : 0; + } + + clear_packet (); + out_int (CODE_binlog_chat_new); + + int *flags_p = packet_ptr; + + assert (!(flags & 0xfffe0000)); + out_int (flags); + out_int (id); + + if (title) { + if (!P || !P->title || mystreq1 (P->title, title, title_len)) { + out_cstring (title, title_len); + (*flags_p) |= (1 << 17); + } + } + + if (user_num) { + if (!P || P->users_num != *user_num) { + out_int (*user_num); + (*flags_p) |= (1 << 18); + } + } + + if (date) { + if (!P || P->date != *date) { + out_int (*date); + (*flags_p) |= (1 << 19); + } + } + + if (version) { + assert (participants); + if (!P || *version != P->version) { + out_int (*version); + store_ds_type_vector (participants, TYPE_TO_PARAM_1 (vector, TYPE_TO_PARAM (chat_participant))); + (*flags_p) |= (1 << 20); + } + } + + if (chat_photo && chat_photo->photo_big) { + if (!P || DS_LVAL (chat_photo->photo_big->secret) != P->photo_big.secret) { + store_ds_type_chat_photo (chat_photo, TYPE_TO_PARAM (chat_photo)); + (*flags_p) |= (1 << 21); + } + } + + if (photo) { + if (!P || !P->photo || P->photo->id != DS_LVAL (photo->id)) { + store_ds_type_photo (photo, TYPE_TO_PARAM (photo)); + (*flags_p) |= (1 << 22); + } + } + + if (admin) { + if (!P || P->admin_id != *admin) { + out_int (*admin); + (*flags_p) |= (1 << 23); + } + } + + if (last_read_in) { + if (!P || P->last_read_in < *last_read_in) { + out_int (*last_read_in); + (*flags_p) |= (1 << 24); + } + } + + if (last_read_out) { + if (!P || P->last_read_out < *last_read_out) { + out_int (*last_read_out); + (*flags_p) |= (1 << 25); + } + } + + if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) { + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); + } +} + +void bl_do_encr_chat_new (struct tgl_state *TLS, int id, long long *access_hash, int *date, int *admin, int *user_id, void *key, void *g_key, void *first_key_id, int *state, int *ttl, int *layer, int *in_seq_no, int *last_in_seq_no, int *out_seq_no, long long *key_fingerprint, int flags) { + tgl_peer_t *PP = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (id)); + struct tgl_secret_chat *P = PP ? &PP->encr_chat : NULL; + + if (flags == TGL_FLAGS_UNCHANGED) { + flags = P->flags & 0xffff; + } + + clear_packet (); + out_int (CODE_binlog_encr_chat_new); + + int *flags_p = packet_ptr; + + assert (!(flags & 0xfffe0000)); + out_int (flags); + out_int (id); + + if (access_hash) { + if (!P || P->access_hash != *access_hash) { + out_long (*access_hash); + (*flags_p) |= (1 << 17); + } + } + + if (date) { + if (!P || P->date != *date) { + out_int (*date); + (*flags_p) |= (1 << 18); + } + } + + if (admin) { + if (!P || P->admin_id != *admin) { + out_int (*admin); + (*flags_p) |= (1 << 19); + } + } + + if (user_id) { + if (!P || P->user_id != *user_id) { + out_int (*user_id); + (*flags_p) |= (1 << 20); + } + } + + if (key) { + if (!P || memcmp (P->key, key, 256)) { + out_ints (key, 64); + (*flags_p) |= (1 << 21); + } + } + + if (g_key) { + if (!P || !P->g_key || memcmp (P->g_key, g_key, 256)) { + out_ints (g_key, 64); + (*flags_p) |= (1 << 22); + } + } + + if (state) { + if (!P || (int)P->state != *state) { + out_int (*state); + (*flags_p) |= (1 << 23); + } + } + + if (ttl) { + if (!P || P->ttl != *ttl) { + out_int (*ttl); + (*flags_p) |= (1 << 24); + } + } + + if (layer) { + if (!P || P->layer != *layer) { + out_int (*layer); + (*flags_p) |= (1 << 25); + } + } + + if (in_seq_no || last_in_seq_no || out_seq_no) { + if (!P || (in_seq_no && P->in_seq_no != *in_seq_no) || + (out_seq_no && P->out_seq_no != *out_seq_no) || + (last_in_seq_no && P->last_in_seq_no != *last_in_seq_no)) { + + out_int (in_seq_no ? *in_seq_no : P ? P->in_seq_no : 0); + out_int (last_in_seq_no ? *last_in_seq_no : P ? P->last_in_seq_no : 0); + out_int (out_seq_no ? *out_seq_no : P ? P->out_seq_no : 0); + (*flags_p) |= (1 << 26); + } + } + + if (key_fingerprint) { + if (!P || P->key_fingerprint != *key_fingerprint) { + out_long (*key_fingerprint); + (*flags_p) |= (1 << 27); + } + } + + if (((*flags_p) & 0xffff0000) || !P || (P->flags & 0xffff) != flags) { + add_log_event (TLS, packet_buffer, 4 * (packet_ptr - packet_buffer)); + } +} diff --git a/libs/tgl/src/binlog.tl b/libs/tgl/src/binlog.tl new file mode 100644 index 0000000000..a0c52424d7 --- /dev/null +++ b/libs/tgl/src/binlog.tl @@ -0,0 +1,102 @@ +---types--- + +binlog.encrKey key:64*[int] = binlog.EncrKey; + +binlog.start = binlog.Update; + +binlog.dcOption dc:int name:string ip:string port:int = binlog.Update; +binlog.dcOptionNew flags:int dc:int name:string ip:string port:int = binlog.Update; + +binlog.authKey dc:int key:%binlog.EncrKey = binlog.Update; +binlog.defaultDc dc:int = binlog.Update; +binlog.dcSigned dc:int = binlog.Update; + +binlog.ourId id:int = binlog.Update; + +binlog.setDhParams root:int prime:%binlog.EncrKey version:int = binlog.Update; + +binlog.setPts pts:int = binlog.Update; +binlog.setQts qts:int = binlog.Update; +binlog.setDate date:int = binlog.Update; +binlog.setSeq seq:int = binlog.Update; + +binlog.encrChatDelete id:int = binlog.Update; +binlog.encrChatNew#84977251 flags:# id:int + access_hash:flags.17?long + date:flags.18?int + admin:flags.19?int + user_id:flags.20?int + key:flags.21?%binlog.EncrKey + g_key:flags.22?%binlog.EncrKey + state:flags.23?int + ttl:flags.24?int + layer:flags.25?int + in_seq_no:flags.26?int last_in_seq_no:flags.26?int out_seq_no:flags.26?int + key_fingerprint:flags.27?long + = binlog.Update; + +binlog.encrChatExchangeNew#9d49488d flags:# id:int + exchange_id:flags.17?long + key:flags.18?%binlog.EncrKey + state:flags.19?int + = binlog.Update; + +binlog.userDelete id:int = binlog.Update; +binlog.userNew#127cf2f9 flags:# id:int + access_hash:flags.17?long + first_name:flags.18?string last_name:flags.18?string + phone:flags.19?string + username:flags.20?string + photo:flags.21?Photo + real_first_name:flags.22?string real_last_name:flags.22?string + user_photo:flags.23?UserProfilePhoto + last_read_in:flags.24?int + last_read_out:flags.25?int + bot_info:flags.26?BotInfo + = binlog.Update; + +binlog.chatNew#0a10aa92 flags:# id:int + title:flags.17?string + user_num:flags.18?int + date:flags.19?int + version:flags.20?int participants:flags.20?(Vector ChatParticipant) + chat_photo:flags.21?ChatPhoto + photo:flags.22?Photo + admin:flags.23?int + last_read_in:flags.24?int + last_read_out:flags.25?int + = binlog.Update; + +binlog.chatAddParticipant id:int version:int user_id:int inviter_id:int date:int = binlog.Update; +binlog.chatDelParticipant id:int version:int user_id:int = binlog.Update; + +binlog.setMsgId old_id:long new_id:int = binlog.Update; +binlog.messageDelete lid:long = binlog.Update; + +binlog.messageNew#427cfcdb flags:# lid:long + from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int + fwd_from_id:flags.18?int fwd_date:flags.18?int + date:flags.19?int + message:flags.20?string + media:flags.21?MessageMedia + action:flags.22?MessageAction + reply_id:flags.23?int + reply_markup:flags.24?ReplyMarkup + = binlog.Update; + +binlog.messageEncrNew#6cf7cabc flags:# lid:long + from_id:flags.17?int to_type:flags.17?int to_id:flags.17?int + //empty 18 bit + date:flags.19?int + message:flags.20?string + encr_media:flags.21?DecryptedMessageMedia + encr_action:flags.22?DecryptedMessageAction + file:flags.23?EncryptedFile + = binlog.Update; + +binlog.msgUpdate#6dd4d85f lid:long = binlog.Update; + +binlog.resetAuthorization = binlog.Update; + + +---functions--- diff --git a/libs/tgl/src/config.h b/libs/tgl/src/config.h new file mode 100644 index 0000000000..eaca5156db --- /dev/null +++ b/libs/tgl/src/config.h @@ -0,0 +1,162 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* disable extf queries */ +// #undef DISABLE_EXTF + +/* Use libevent v1 */ +//#undef EVENT_V1 + +/* Use libevent v2 */ +#define EVENT_V2 1 + +/* Define to 1 if you have the `alarm' function. */ +// #undef HAVE_ALARM + +/* Define to 1 if you have the header file. */ +// #undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the `endpwent' function. */ +// #undef HAVE_ENDPWENT + +/* Define to 1 if you have the header file. */ +// #undef HAVE_EXECINFO_H + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `event' library (-levent). */ +// #undef HAVE_LIBEVENT + +/* Define to 1 if you have the `m' library (-lm). */ +#define HAVE_LIBM 1 + +/* Define to 1 if you have `z' library (-lz) */ +#define HAVE_LIBZ 1 + +/* Define to 1 if you have the header file. */ +// #undef HAVE_MACH_MACH_H + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#define HAVE_MALLOC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MALLOC_H 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mkdir' function. */ +#define HAVE_MKDIR 1 + +/* Define to 1 if you have the header file. */ +// #undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +// #undef HAVE_NETINET_IN_H + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#define HAVE_REALLOC 1 + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `socket' function. */ +#define HAVE_SOCKET 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the header file. */ +// #undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strndup' function. */ +#define HAVE_STRNDUP 1 + +/* Define to 1 if you have the header file. */ +// #undef HAVE_SYS_FILE_H + +/* Define to 1 if you have the header file. */ +// #undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +// #undef HAVE_TERMIOS_H + +/* Define to 1 if you have the `uname' function. */ +// #undef HAVE_UNAME + +/* Define to 1 if you have the header file. */ +// #undef HAVE_UNISTD_H + +/* Define to 1 if the system has the `__builtin_bswap32' built-in function */ +// #undef HAVE___BUILTIN_BSWAP32 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "telegram-cli" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "telegram-cli 1.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "telegram-cli" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.0" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* fixed for correct valgrind work */ +// #undef VALGRIND_FIXES + +/* Define to `int' if doesn't define. */ +#define gid_t int + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#define inline __inline +#endif + +/* Define to rpl_malloc if the replacement function should be used. */ +// #undef malloc + +/* Define to rpl_realloc if the replacement function should be used. */ +// #undef realloc + +/* Define to `unsigned int' if does not define. */ +// #undef size_t + +/* Define to `int' if doesn't define. */ +#define uid_t int diff --git a/libs/tgl/src/encrypted_scheme.tl b/libs/tgl/src/encrypted_scheme.tl new file mode 100644 index 0000000000..6fff5b6a55 --- /dev/null +++ b/libs/tgl/src/encrypted_scheme.tl @@ -0,0 +1 @@ +encrypted_scheme23.tl \ No newline at end of file diff --git a/libs/tgl/src/encrypted_scheme16.tl b/libs/tgl/src/encrypted_scheme16.tl new file mode 100644 index 0000000000..eb58ed4475 --- /dev/null +++ b/libs/tgl/src/encrypted_scheme16.tl @@ -0,0 +1,22 @@ +---types--- +decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer; +decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; + +decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; + +decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageActionReadMessages#c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; +---functions--- diff --git a/libs/tgl/src/encrypted_scheme17.tl b/libs/tgl/src/encrypted_scheme17.tl new file mode 100644 index 0000000000..95e661bda5 --- /dev/null +++ b/libs/tgl/src/encrypted_scheme17.tl @@ -0,0 +1,31 @@ +---types--- +decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer; +decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; + +decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; + +decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageActionReadMessages#c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; + +decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction; + +decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction; + +---functions--- diff --git a/libs/tgl/src/encrypted_scheme18.tl b/libs/tgl/src/encrypted_scheme18.tl new file mode 100644 index 0000000000..134f719973 --- /dev/null +++ b/libs/tgl/src/encrypted_scheme18.tl @@ -0,0 +1,38 @@ +---types--- +decryptedMessageLayer#1be31789 layer:int message:DecryptedMessage = DecryptedMessageLayer; +decryptedMessage_l16#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService_l16#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessage#204d3878 in_seq_no:int out_seq_no:int ttl:int random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#73164160 in_seq_no:int out_seq_no:int random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; + +decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +//decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; + +decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageActionReadMessages#c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; + +decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction; + +decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction; + +decryptedMessageActionRequestKey exchange_id:long g_a:string = DecryptedMessageAction; +decryptedMessageActionAcceptKey exchange_id:long g_b:string key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionCommitKey exchange_id:long key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionAbortKey exchange_id:long = DecryptedMessageAction; +decryptedMessageActionNoop = DecryptedMessageAction; + + +---functions--- diff --git a/libs/tgl/src/encrypted_scheme23.tl b/libs/tgl/src/encrypted_scheme23.tl new file mode 100644 index 0000000000..ae31312de1 --- /dev/null +++ b/libs/tgl/src/encrypted_scheme23.tl @@ -0,0 +1,29 @@ +---types--- +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c str_thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 latitude:double longitude:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; +decryptedMessageMediaDocument#b095434b str_thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageActionReadMessages#c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; + +decryptedMessage#204d3878 random_id:long ttl:int message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#73164160 random_id:long action:DecryptedMessageAction = DecryptedMessage; +decryptedMessageMediaVideo#524a415d str_thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageLayer#1be31789 random_bytes:bytes layer:int in_seq_no:int out_seq_no:int message:DecryptedMessage = DecryptedMessageLayer; +decryptedMessageActionResend#511110b0 start_seq_no:int end_seq_no:int = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; +decryptedMessageActionTyping#ccb27641 action:SendMessageAction = DecryptedMessageAction; + +decryptedMessageActionRequestKey#f3c9611b exchange_id:long g_a:bytes = DecryptedMessageAction; +decryptedMessageActionAcceptKey#6fe1735b exchange_id:long g_b:bytes key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionAbortKey#dd05ec6b exchange_id:long = DecryptedMessageAction; +decryptedMessageActionCommitKey#ec2e0b9b exchange_id:long key_fingerprint:long = DecryptedMessageAction; +decryptedMessageActionNoop#a82fdd63 = DecryptedMessageAction; + +decryptedMessageMediaExternalDocument#fa95b0dd id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = DecryptedMessageMedia; +---functions--- diff --git a/libs/tgl/src/errors b/libs/tgl/src/errors new file mode 100644 index 0000000000..481a144737 --- /dev/null +++ b/libs/tgl/src/errors @@ -0,0 +1,11 @@ +type of errors that tgl can set: + +EPROTO: server returned error for query. Some kinds of error (such as FLOOD_WAIT) tgl can handle by itself, but others it can not. In most cases it means bug in tgl or invalid parameter supplied to method (such as message id). + +EINVAL: tgl detected invalid argument supplied before sending query to server. For example user instead of chat or bad msg id. + +ENOENT: tgl received empty response from server. For example when user tried to get message by id + +EBADF: tgl can not open file on disk or file is empty + +E2BIG: supplied file is too big diff --git a/libs/tgl/src/event-old.h b/libs/tgl/src/event-old.h new file mode 100644 index 0000000000..b920e68f02 --- /dev/null +++ b/libs/tgl/src/event-old.h @@ -0,0 +1,48 @@ +#ifndef __EVENT_OLD_H__ +#define __EVENT_OLD_H__ + +#include +#include + +#define BEV_EVENT_READ EVBUFFER_READ +#define BEV_EVENT_WRITE EVBUFFER_WRITE +#define BEV_EVENT_EOF EVBUFFER_EOF +#define BEV_EVENT_ERROR EVBUFFER_ERROR +#define BEV_EVENT_TIMEOUT EVBUFFER_TIMEOUT + +typedef int evutil_socket_t; + +static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused)); +static inline struct event *event_new (struct event_base *base, int fd, int what, void(*callback)(int, short, void *), void *arg) { + struct event *ev = malloc (sizeof (*ev)); + event_set (ev, fd, what, callback, arg); + event_base_set (base, ev); + return ev; +} + +static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) __attribute__ ((unused)); +static inline struct event *evtimer_new (struct event_base *base, void(*callback)(int, short, void *), void *arg) { + struct event *ev = malloc (sizeof (*ev)); + event_set (ev, -1, 0, callback, arg); + event_base_set (base, ev); + return ev; +} + +static void event_free (struct event *ev) __attribute__ ((unused)); +static void event_free (struct event *ev) { + event_del (ev); + free (ev); +} + +static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) __attribute__ ((unused)); +static struct bufferevent *bufferevent_socket_new (struct event_base *base, int fd, int flags) { + assert (!flags); + struct bufferevent *bev = bufferevent_new(fd, 0, 0, 0, 0); + bufferevent_base_set (base, bev); + return bev; +} + +static inline void *event_get_callback_arg(const struct event *ev) { + return ev->ev_arg; +} +#endif diff --git a/libs/tgl/src/generate.c b/libs/tgl/src/generate.c new file mode 100644 index 0000000000..68bf30272d --- /dev/null +++ b/libs/tgl/src/generate.c @@ -0,0 +1,3219 @@ +/* + This file is part of tgl-libary/generate + + Tgl-library/generate is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Tgl-library/generate is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this tgl-library/generate. If not, see . + + Copyright Vitaly Valtman 2014-2015 + + It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/) + Copyright 2012-2013 Vkontakte Ltd + 2012-2013 Vitaliy Valtman +*/ + +#define _GNU_SOURCE + +#include "config.h" +#include +#include +#ifdef HAVE_EXECINFO_H +#include +#endif +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#ifndef __MINGW32__ +#include "wingetopt.h" +#endif +#else +#include +#endif +#include +#include +#include +#include +#include +#include +#include + +#include "..\tl-parser\src\tl-tl.h" +#include "generate.h" + +#include "tree.h" + +int header; + +#if defined(WIN32) || defined(_WIN32) +char* strndup(const char* str, size_t n) { + size_t len = n; + const char *end = memchr(str, '\0', n); + if (end) + len = end - str; + + char* dupstr = malloc(len + 1); + if (dupstr != NULL) { + memcpy(dupstr, str, len); + dupstr[len] = '\0'; + } + return dupstr; +} + +#define lrand48() rand() +#define _PRINTF_INT64_ "I64" +#else +#define _PRINTF_INT64_ "ll" +#endif + +#define tl_type_name_cmp(a,b) (a->name > b->name ? 1 : a->name < b->name ? -1 : 0) + +DEFINE_TREE (tl_type, struct tl_type *, tl_type_name_cmp, 0) +DEFINE_TREE (tl_combinator, struct tl_combinator *, tl_type_name_cmp, 0) + +struct tree_tl_type *type_tree; +struct tree_tl_combinator *function_tree; + +void tl_function_insert_by_name (struct tl_combinator *c) { + function_tree = tree_insert_tl_combinator (function_tree, c, lrand48 ()); +} + +struct tl_type *tl_type_get_by_name (int name) { + static struct tl_type t; + t.name = name; + + return tree_lookup_tl_type (type_tree, &t); +} + +void tl_type_insert_by_name (struct tl_type *t) { + type_tree = tree_insert_tl_type (type_tree, t, lrand48 ()); +} + +int is_empty (struct tl_type *t) { + if (t->name == NAME_INT || t->name == NAME_LONG || t->name == NAME_DOUBLE || t->name == NAME_STRING) { return 1; } + if (t->constructors_num != 1) { return 0; } + int count = 0; + int i; + struct tl_combinator *c = t->constructors[0]; + for (i = 0; i < c->args_num; i++) { + if (!(c->args[i]->flags & FLAG_OPT_VAR)) { count ++; } + } + return count == 1; +} + + +static char buf[1 << 20]; +int buf_size; +int *buf_ptr = (int *)buf; +int *buf_end; +#ifndef DISABLE_EXTF +int skip_only = 0; +#else +int skip_only = 1; +#endif + +int verbosity; + +int get_int (void) { + assert (buf_ptr < buf_end); + return *(buf_ptr ++); +} + +long long get_long (void) { + assert (buf_ptr + 1 < buf_end); + long long r = *(long long *)buf_ptr; + buf_ptr += 2; + return r; +} + +static void *malloc0 (int size) { + void *r = malloc (size); + assert (r); + memset (r, 0, size); + return r; +} + +char *get_string (void) { + int l = *(unsigned char *)buf_ptr; + assert (l != 0xff); + + char *res; + int tlen = 0; + if (l == 0xfe) { + l = ((unsigned)get_int ()) >> 8; + res = (char *)buf_ptr; + tlen = l; + } else { + res = ((char *)buf_ptr) + 1; + tlen = 1 + l; + } + + int len = l; + + tlen += ((-tlen) & 3); + assert (!(tlen & 3)); + + buf_ptr += tlen / 4; + assert (buf_ptr <= buf_end); + + char *r = strndup (res, len); + assert (r); + return r; +} + + +int tn, fn, cn; +struct tl_type **tps; +struct tl_combinator **fns; + +struct tl_tree *read_tree (int *var_num); +struct tl_tree *read_nat_expr (int *var_num); +struct tl_tree *read_type_expr (int *var_num); +int read_args_list (struct arg **args, int args_num, int *var_num); + +#define use_var_nat_full_form(x) 0 + +void *int_to_var_nat_const_init (long long x) { + if (use_var_nat_full_form (x)) { + struct tl_tree_nat_const *T = malloc (sizeof (*T)); + assert (T); + T->self.flags = 0; + T->self.methods = &tl_pnat_const_full_methods; + T->value = x; + return T; + } else { + return (void *)(long)(x * 2 - 0x80000001l); + } +} + +long long var_nat_const_to_int (void *x) { + if (((long)x) & 1) { + return (((long)x) + 0x80000001l) / 2; + } else { + return ((struct tl_tree_nat_const *)x)->value; + } +} + +int tl_tree_type_type (struct tl_tree *x) { + return NODE_TYPE_TYPE; +} + +int tl_tree_type_array (struct tl_tree *x) { + return NODE_TYPE_ARRAY; +} + +int tl_tree_type_nat_const (struct tl_tree *x) { + return NODE_TYPE_NAT_CONST; +} + +int tl_tree_type_var_num (struct tl_tree *x) { + return NODE_TYPE_VAR_NUM; +} + +int tl_tree_type_var_type (struct tl_tree *x) { + return NODE_TYPE_VAR_TYPE; +} + +struct tl_tree_methods tl_var_num_methods = { + .type = tl_tree_type_var_num +}; + +struct tl_tree_methods tl_var_type_methods = { + .type = tl_tree_type_var_type +}; + +struct tl_tree_methods tl_type_methods = { + .type = tl_tree_type_type +}; + +struct tl_tree_methods tl_nat_const_methods = { + .type = tl_tree_type_nat_const +}; + +struct tl_tree_methods tl_array_methods = { + .type = tl_tree_type_array +}; + +struct tl_tree_methods tl_ptype_methods = { + .type = tl_tree_type_type +}; + +struct tl_tree_methods tl_parray_methods = { + .type = tl_tree_type_array +}; + +struct tl_tree_methods tl_pvar_num_methods = { + .type = tl_tree_type_var_num +}; + +struct tl_tree_methods tl_pvar_type_methods = { + .type = tl_tree_type_var_type +}; + +struct tl_tree_methods tl_nat_const_full_methods = { + .type = tl_tree_type_nat_const +}; + +struct tl_tree_methods tl_pnat_const_full_methods = { + .type = tl_tree_type_nat_const +}; + +struct tl_tree *read_num_const (int *var_num) { + return (void *)int_to_var_nat_const_init (get_int ()); +} + + +void print_c_type_name (struct tl_tree *t, char *offset, int in) { + int x = TL_TREE_METHODS(t)->type (t); + + if (x == NODE_TYPE_VAR_TYPE) { + printf ("void *"); + return; + } + + if (x == NODE_TYPE_ARRAY) { + struct tl_tree_array *a = (void *)t; + assert (a->args_num == 1); + print_c_type_name (a->args[0]->type, offset, in); + printf ("*"); + return; + } + + struct tl_type *T = ((struct tl_tree_type *)t)->type; + if (!strcmp (T->id, "Vector") && in) { + printf ("struct {\n"); + printf ("%s int *cnt;\n", offset); + printf ("%s ", offset); + print_c_type_name (((struct tl_tree_type *)t)->children[0], offset, in); + printf ("*data;\n"); + printf ("%s} *", offset); + return; + } + if (!strcmp (T->id, "Long")) { + printf ("long long *"); + return; + } + if (!strcmp (T->id, "#") || !strcmp (T->id, "Int")) { + printf ("int *"); + return; + } + if (!strcmp (T->id, "Double")) { + printf ("double *"); + return; + } + if (!strcmp (T->id, "String") || !strcmp (T->id, "Bytes")) { + /*printf ("struct {\n"); + printf ("%s int len;\n", offset); + printf ("%s char *data;\n", offset); + printf ("%s} *", offset); + return;*/ + + printf ("struct tl_ds_string *"); + return; + } + printf ("struct tl_ds_%s *", T->print_id); +} + +int gen_uni_skip (struct tl_tree *t, char *cur_name, int *vars, int first, int fun) { + assert (t); + int x = TL_TREE_METHODS (t)->type (t); + int l = 0; + int i; + int j; + struct tl_tree_type *t1; + struct tl_tree_array *t2; + int y; + int L = strlen (cur_name); + char *fail = fun == 1 ? "return 0;" : fun == -1 ? "return;" : "return -1;"; + switch (x) { + case NODE_TYPE_TYPE: + t1 = (void *)t; + if (!first) { + printf (" if (ODDP(%s) || %s->type->name != 0x%08x) { %s }\n", cur_name, cur_name, t1->type->name, fail); + } else { + printf (" if (ODDP(%s) || (%s->type->name != 0x%08x && %s->type->name != 0x%08x)) { %s }\n", cur_name, cur_name, t1->type->name, cur_name, ~t1->type->name, fail); + } + for (i = 0; i < t1->children_num; i++) { +#if defined(_MSC_VER) +#pragma warning(disable : 4996) +#endif + sprintf (cur_name + L, "->params[%d]", i); +#if defined(_MSC_VER) +#pragma warning(default : 4996) +#endif + gen_uni_skip (t1->children[i], cur_name, vars, 0, fun); + cur_name[L] = 0; + } + return 0; + case NODE_TYPE_NAT_CONST: + printf (" if (EVENP(%s) || ((long)%s) != %"_PRINTF_INT64_"d) { %s }\n", cur_name, cur_name, var_nat_const_to_int (t) * 2 + 1, fail); + return 0; + case NODE_TYPE_ARRAY: + printf (" if (ODDP(%s) || %s->type->name != TL_TYPE_ARRAY) { %s }\n", cur_name, cur_name, fail); + t2 = (void *)t; + +#if defined(_MSC_VER) +#pragma warning(disable : 4996) +#endif + sprintf (cur_name + L, "->params[0]"); +#if defined(_MSC_VER) +#pragma warning(default : 4996) +#endif + y = gen_uni_skip (t2->multiplicity, cur_name, vars, 0, fun); + cur_name[L] = 0; + +#if defined(_MSC_VER) +#pragma warning(disable : 4996) +#endif + sprintf (cur_name + L, "->params[1]"); +#if defined(_MSC_VER) +#pragma warning(default : 4996) +#endif + y += gen_uni_skip (t2->args[0]->type, cur_name, vars, 0, fun); + cur_name[L] = 0; + return 0; + case NODE_TYPE_VAR_TYPE: + printf (" if (ODDP(%s)) { %s }\n", cur_name, fail); + i = ((struct tl_tree_var_type *)t)->var_num; + if (!vars[i]) { + printf (" struct paramed_type *var%d = %s; assert (var%d);\n", i, cur_name, i); + vars[i] = 1; + } else if (vars[i] == 1) { + printf (" if (compare_types (var%d, %s) < 0) { %s }\n", i, cur_name, fail); + } else { + assert (0); + return -1; + } + return l; + case NODE_TYPE_VAR_NUM: + printf (" if (EVENP(%s)) { %s }\n", cur_name, fail); + i = ((struct tl_tree_var_num *)t)->var_num; + j = ((struct tl_tree_var_num *)t)->dif; + if (!vars[i]) { + printf (" struct paramed_type *var%d = ((void *)%s) + %d; assert (var%d);\n", i, cur_name, 2 * j, i); + vars[i] = 2; + } else if (vars[i] == 2) { + printf (" if (var%d != ((void *)%s) + %d) { %s }\n", i, cur_name, 2 * j, fail); + } else { + assert (0); + return -1; + } + return 0; + default: + assert (0); + return -1; + } +} + +void print_offset (int len) { + int i; + for (i = 0; i < len; i++) { printf (" "); } +} + +int gen_create (struct tl_tree *t, int *vars, int offset) { + int x = TL_TREE_METHODS (t)->type (t); + int i; + struct tl_tree_type *t1; + struct tl_tree_array *t2; + switch (x) { + case NODE_TYPE_TYPE: + print_offset (offset); + printf ("&(struct paramed_type){\n"); + print_offset (offset + 2); + t1 = (void *)t; + if (t1->self.flags & FLAG_BARE) { + printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"Bare_%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", ~t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types); + } else { + printf (".type = &(struct tl_type_descr) {.name = 0x%08x, .id = \"%s\", .params_num = %d, .params_types = %"_PRINTF_INT64_"d},\n", t1->type->name, t1->type->id, t1->type->arity, t1->type->params_types); + } + if (t1->children_num) { + print_offset (offset + 2); + printf (".params = (struct paramed_type *[]){\n"); + for (i = 0; i < t1->children_num; i++) { + assert (gen_create (t1->children[i], vars, offset + 4) >= 0); + printf (",\n"); + } + print_offset (offset + 2); + printf ("}\n"); + } else { + print_offset (offset + 2); + printf (".params = 0,\n"); + } + print_offset (offset); + printf ("}"); + return 0; + case NODE_TYPE_NAT_CONST: + print_offset (offset); + printf ("INT2PTR (%d)", (int)var_nat_const_to_int (t)); + return 0; + case NODE_TYPE_ARRAY: + print_offset (offset); + printf ("&(struct paramed_type){\n"); + print_offset (offset + 2); + t2 = (void *)t; + printf (".type = &(struct tl_type_descr) {.name = NAME_ARRAY, .id = \"array\", .params_num = 2, .params_types = 1},\n"); + print_offset (offset + 2); + printf (".params = (struct paramed_type **){\n"); + gen_create (t2->multiplicity, vars, offset + 4); + printf (",\n"); + gen_create (t2->args[0]->type, vars, offset + 4); + printf (",\n"); + print_offset (offset + 2); + printf ("}\n"); + print_offset (offset); + printf ("}"); + return 0; + case NODE_TYPE_VAR_TYPE: + print_offset (offset); + printf ("var%d", ((struct tl_tree_var_type *)t)->var_num); + return 0; + case NODE_TYPE_VAR_NUM: + print_offset (offset); + printf ("((void *)var%d) + %d", ((struct tl_tree_var_type *)t)->var_num, 2 * ((struct tl_tree_var_num *)t)->dif); + return 0; + default: + assert (0); + return -1; + } +} + +int gen_field_skip (struct arg *arg, int *vars, int num) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (vars[arg->var_num] == 0) { + printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); + printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); + printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num); + } else { + assert (0); + return -1; + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + if (!bare) { + printf ("%sif (skip_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } else { + printf ("%sif (skip_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); + printf ("%s if (skip_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num); + printf ("%s}\n", offset); + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_fetch (struct arg *arg, int *vars, int num, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (!empty) { + printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset); + } + if (arg->id && strlen (arg->id) && !empty) { + printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id); + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (vars[arg->var_num] == 0) { + printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); + printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset); + printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sif (in_remaining () < 4) { return -1;}\n", offset); + printf ("%seprintf (\" %%d\", prefetch_int ());\n", offset); + printf ("%sif (vars%d != INT2PTR (fetch_int ())) { return -1; }\n", offset, arg->var_num); + } else { + assert (0); + return -1; + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + if (!bare) { + printf ("%sif (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } else { + printf ("%sif (fetch_type_bare_%s (field%d) < 0) { return -1;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%seprintf (\" [\");\n", offset); + printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); + printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset); + printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); + printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset); + printf ("%s if (fetch_type_%s (field%d) < 0) { return -1;}\n", offset, "any", num); + printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); + printf ("%s}\n", offset); + printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset); + printf ("%seprintf (\" ]\");\n", offset); + } + } + if (!empty) { + printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset); + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_store (struct arg *arg, int *vars, int num, int from_func, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + char *fail = from_func ? "0" : "-1"; + char *expect = from_func ? "expect_token_ptr" : "expect_token"; + if (arg->id && strlen (arg->id) > 0 && !empty) { + printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s local_next_token ();\n", offset); + printf ("%s %s (\":\", 1);\n", offset, expect); + printf ("%s}\n", offset); + } + if (arg->var_num >= 0) { + printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail); + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (vars[arg->var_num] == 0) { + printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); + printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num); + printf ("%sout_int (get_int ());\n", offset); + printf ("%sassert (var%d);\n", offset, arg->var_num); + printf ("%slocal_next_token ();\n", offset); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); + printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail); + printf ("%sout_int (get_int ());\n", offset); + printf ("%slocal_next_token ();\n", offset); + } else { + assert (0); + return -1; + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + if (!bare) { + printf ("%sif (store_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); + } else { + printf ("%sif (store_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); + } + } else { + printf ("%s%s (\"[\", 1);\n", offset, expect); + + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); + printf ("%s if (store_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail); + printf ("%s}\n", offset); + + printf ("%s%s (\"]\", 1);\n", offset, expect); + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_autocomplete (struct arg *arg, int *vars, int num, int from_func, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + char *fail = from_func ? "0" : "-1"; + char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete"; + if (arg->id && strlen (arg->id) > 0 && !empty) { + printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id); + printf ("%s return %s;\n", offset, fail); + printf ("%s}\n", offset); + + printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s local_next_token ();\n", offset); + printf ("%s %s (\":\", 1);\n", offset, expect); + printf ("%s}\n", offset); + } + if (arg->var_num >= 0) { + printf ("%sif (cur_token_len < 0) { return %s; }\n", offset, fail); + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (vars[arg->var_num] == 0) { + printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); + printf ("%sstruct paramed_type *var%d = INT2PTR (get_int ());\n", offset, arg->var_num); + printf ("%sassert (var%d);\n", offset, arg->var_num); + printf ("%slocal_next_token ();\n", offset); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sif (!is_int ()) { return %s;}\n", offset, fail); + printf ("%sif (vars%d != INT2PTR (get_int ())) { return %s; }\n", offset, arg->var_num, fail); + printf ("%slocal_next_token ();\n", offset); + } else { + assert (0); + return -1; + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + if (!bare) { + printf ("%sif (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); + } else { + printf ("%sif (autocomplete_type_bare_%s (field%d) < 0) { return %s;}\n", offset, t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num, fail); + } + } else { + printf ("%s%s (\"[\", 1);\n", offset, expect); + + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%swhile (multiplicity%d -- > 0) {\n", offset, num); + printf ("%s if (autocomplete_type_%s (field%d) < 0) { return %s;}\n", offset, "any", num, fail); + printf ("%s}\n", offset); + + printf ("%s%s (\"]\", 1);\n", offset, expect); + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_fetch_ds (struct arg *arg, int *vars, int num, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + printf ("%sassert (in_remaining () >= 4);\n", offset); + if (arg->id && strlen (arg->id)) { + printf ("%sresult->%s = talloc (4);", offset, arg->id); + printf ("%s*result->%s = prefetch_int ();", offset, arg->id); + } else { + printf ("%sresult->f%d = talloc (4);", offset, num - 1); + printf ("%s*result->f%d = prefetch_int ();", offset, num - 1); + } + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (fetch_int ());\n", offset, arg->var_num); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == INT2PTR (fetch_int ()));\n", offset, arg->var_num); + } else { + assert (0); + return -1; + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + if (arg->id && strlen (arg->id)) { + printf ("%sresult->%s = ", offset, arg->id); + } else { + printf ("%sresult->f%d = ", offset, num - 1); + } + if (t == NODE_TYPE_TYPE && !strcmp (((struct tl_tree_type *)arg->type)->type->id, "Vector")) { + printf ("(void *)"); + } + if (!bare) { + printf ("fetch_ds_type_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } else { + printf ("fetch_ds_type_bare_%s (field%d);\n", t == NODE_TYPE_VAR_TYPE ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + if (arg->id && strlen (arg->id)) { + printf ("%sresult->%s = ", offset, arg->id); + } else { + printf ("%sresult->f%d = ", offset, num - 1); + } + printf ("talloc0 (multiplicity%d * sizeof (void *));\n", num); + printf ("%s{\n", offset); + printf ("%s int i = 0;\n", offset); + printf ("%s while (i < multiplicity%d) {\n", offset, num); + if (arg->id && strlen (arg->id)) { + printf ("%s result->%s[i ++] =", offset, arg->id); + } else { + printf ("%s result->f%d[i ++] = ", offset, num - 1); + } + printf ("fetch_ds_type_%s (field%d);\n", "any", num); + printf ("%s }\n", offset); + printf ("%s}\n", offset); + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_free_ds (struct arg *arg, int *vars, int num, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (arg->id && strlen (arg->id)) { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id); + } + printf ("%stfree (D->%s, sizeof (*D->%s));\n", offset, arg->id, arg->id); + } else { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1); + } + printf ("%stfree (D->f%d, sizeof (*D->f%d));\n", offset, num - 1, num - 1); + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int any = (t == NODE_TYPE_VAR_TYPE) || ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; + if (arg->id && strlen (arg->id)) { + printf ("%sfree_ds_type_%s (D->%s, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, arg->id, num); + } else { + printf ("%sfree_ds_type_%s (D->f%d, field%d);\n", offset, any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, num - 1, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%s{\n", offset); + printf ("%s int i = 0;\n", offset); + printf ("%s while (i < multiplicity%d) {\n", offset, num); + if (arg->id && strlen (arg->id)) { + printf ("%s free_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num); + } else { + printf ("%s free_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num); + } + printf ("%s }\n", offset); + printf ("%s}\n", offset); + if (arg->id && strlen (arg->id)) { + printf ("%stfree (D->%s, sizeof (void *) * multiplicity%d);\n", offset, arg->id, num); + } else { + printf ("%stfree (D->f%d, sizeof (void *) * multiplicity%d);\n", offset, num - 1, num); + } + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_store_ds (struct arg *arg, int *vars, int num, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + assert (t == NAME_VAR_NUM); + if (arg->id && strlen (arg->id)) { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*D->%s);\n", offset, arg->var_num, arg->id); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == INT2PTR (*D->%s));\n", offset, arg->var_num, arg->id); + } + printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num); + } else { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*D->f%d);\n", offset, arg->var_num, num - 1); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == *D->f%d);\n", offset, arg->var_num, num - 1); + } + printf ("%sout_int (PTR2INT (var%d));\n", offset, arg->var_num); + } + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int any = (t == NODE_TYPE_VAR_TYPE); + int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; + if (arg->id && strlen (arg->id)) { + printf ("%sstore_ds_type_%s%s (%sD->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num); + } else { + printf ("%sstore_ds_type_%s%s (%sD->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%s{\n", offset); + printf ("%s int i = 0;\n", offset); + printf ("%s while (i < multiplicity%d) {\n", offset, num); + if (arg->id && strlen (arg->id)) { + printf ("%s store_ds_type_%s (D->%s[i ++], field%d);\n", offset, "any", arg->id, num); + } else { + printf ("%s store_ds_type_%s (D->f%d[i ++], field%d);\n", offset, "any", num - 1, num); + } + printf ("%s }\n", offset); + printf ("%s}\n", offset); + } + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_print_ds (struct arg *arg, int *vars, int num, int empty) { + assert (arg); + char *offset = " "; + int o = 0; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + o = 2; + } + if (!empty) { + printf("%sif (multiline_output >= 2) { print_offset (); }\n", offset); + } + if (arg->id && strlen (arg->id) && !empty) { + printf ("%sif (!disable_field_names) { eprintf (\" %s :\"); }\n", offset, arg->id); + } + if (arg->var_num >= 0) { + assert (TL_TREE_METHODS (arg->type)->type (arg->type) == NODE_TYPE_TYPE); + int t = ((struct tl_tree_type *)arg->type)->type->name; + if (t == NAME_VAR_TYPE) { + fprintf (stderr, "Not supported yet\n"); + assert (0); + } else { + if (arg->id && strlen (arg->id)) { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->%s);\n", offset, arg->var_num, arg->id); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == INT2PTR (*DS->%s));\n", offset, arg->var_num, arg->id); + } + } else { + if (vars[arg->var_num] == 0) { + printf ("%sstruct paramed_type *var%d = INT2PTR (*DS->f%d);\n", offset, arg->var_num, num - 1); + vars[arg->var_num] = 2; + } else if (vars[arg->var_num] == 2) { + printf ("%sassert (vars%d == *DS->f%d);\n", offset, arg->var_num, num - 1); + } + } + printf ("%seprintf (\" %%d\", (int)PTR2INT (var%d));\n", offset, arg->var_num); + } + } else { + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + if (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE) { + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (arg->type, vars, 2 + o) >= 0); + printf (";\n"); + int bare = arg->flags & FLAG_BARE; + if (!bare && t == NODE_TYPE_TYPE) { + bare = ((struct tl_tree_type *)arg->type)->self.flags & FLAG_BARE; + } + int any = (t == NODE_TYPE_VAR_TYPE); + int vec = ((struct tl_tree_type *)arg->type)->type->name == NAME_VECTOR; + if (arg->id && strlen (arg->id)) { + printf ("%sprint_ds_type_%s%s (%sDS->%s, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", arg->id, num); + } else { + printf ("%sprint_ds_type_%s%s (%sDS->f%d, field%d);\n", offset, bare ? "bare_" : "", any ? "any" : ((struct tl_tree_type *)arg->type)->type->print_id, vec ? "(void *)" : "", num - 1, num); + } + } else { + assert (t == NODE_TYPE_ARRAY); + printf ("%sint multiplicity%d = PTR2INT (\n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->multiplicity, vars, 2 + o) >= 0); + printf ("%s);\n", offset); + printf ("%sstruct paramed_type *field%d = \n", offset, num); + assert (gen_create (((struct tl_tree_array *)arg->type)->args[0]->type, vars, 2 + o) >= 0); + printf (";\n"); + printf ("%seprintf (\" [\");\n", offset); + printf ("%sif (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); + printf ("%sif (multiline_output >= 1) { multiline_offset += multiline_offset_size;}\n", offset); + printf ("%s{\n", offset); + printf ("%s int i = 0;\n", offset); + printf ("%s while (i < multiplicity%d) {\n", offset, num); + printf ("%s if (multiline_output >= 1) { print_offset (); }\n", offset); + if (arg->id && strlen (arg->id)) { + printf ("%s print_ds_type_%s (DS->%s[i ++], field%d);\n", offset, "any", arg->id, num); + } else { + printf ("%s print_ds_type_%s (DS->f%d[i ++], field%d);\n", offset, "any", num - 1, num); + } + printf ("%s if (multiline_output >= 1) { eprintf (\"\\n\"); }\n", offset); + printf ("%s }\n", offset); + printf ("%s}\n", offset); + printf ("%sif (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}\n", offset); + printf ("%seprintf (\" ]\");\n", offset); + } + } + if (!empty) { + printf("%sif (multiline_output >= 2) { eprintf (\"\\n\"); }\n", offset); + } + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_autocomplete_excl (struct arg *arg, int *vars, int num, int from_func) { + assert (arg); + assert (arg->var_num < 0); + char *offset = " "; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + } + char *fail = from_func ? "0" : "-1"; + char *expect = from_func ? "expect_token_ptr_autocomplete" : "expect_token_autocomplete"; + if (arg->id && strlen (arg->id) > 0) { + printf ("%sif (cur_token_len == -3 && cur_token_real_len <= %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_real_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s set_autocomplete_string (\"%s\");\n", offset, arg->id); + printf ("%s return %s;\n", offset, fail); + printf ("%s}\n", offset); + + printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s local_next_token ();\n", offset); + printf ("%s %s (\":\", 1);\n", offset, expect); + printf ("%s}\n", offset); + } + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE); + printf ("%sstruct paramed_type *field%d = autocomplete_function_any ();\n", offset, num); + printf ("%sif (!field%d) { return 0; }\n", offset, num); + printf ("%sadd_var_to_be_freed (field%d);\n", offset, num); + static char s[20]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 20, "field%d", num); +#else + sprintf (s, "field%d", num); +#endif + gen_uni_skip (arg->type, s, vars, 1, 1); + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +int gen_field_store_excl (struct arg *arg, int *vars, int num, int from_func) { + assert (arg); + assert (arg->var_num < 0); + char *offset = " "; + if (arg->exist_var_num >= 0) { + printf (" if (PTR2INT (var%d) & (1 << %d)) {\n", arg->exist_var_num, arg->exist_var_bit); + offset = " "; + } + char *expect = from_func ? "expect_token_ptr" : "expect_token"; + if (arg->id && strlen (arg->id) > 0) { + printf ("%sif (cur_token_len >= 0 && cur_token_len == %d && !cur_token_quoted && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", offset, (int)(strlen (arg->id)), arg->id); + printf ("%s local_next_token ();\n", offset); + printf ("%s %s (\":\", 1);\n", offset, expect); + printf ("%s}\n", offset); + } + int t = TL_TREE_METHODS (arg->type)->type (arg->type); + assert (t == NODE_TYPE_TYPE || t == NODE_TYPE_VAR_TYPE); + printf ("%sstruct paramed_type *field%d = store_function_any ();\n", offset, num); + printf ("%sif (!field%d) { return 0; }\n", offset, num); + static char s[20]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 20, "field%d", num); +#else + sprintf (s, "field%d", num); +#endif + gen_uni_skip (arg->type, s, vars, 1, 1); + if (arg->exist_var_num >= 0) { + printf (" }\n"); + } + return 0; +} + +void gen_constructor_skip (struct tl_combinator *c) { + printf ("int skip_constructor_%s (struct paramed_type *T) {\n", c->print_id); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" return -1;\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, 0); + + if (c->name == NAME_INT) { + printf (" if (in_remaining () < 4) { return -1;}\n"); + printf (" fetch_int ();\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" if (in_remaining () < 8) { return -1;}\n"); + printf (" fetch_long ();\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING) { + printf (" int l = prefetch_strlen ();\n"); + printf (" if (l < 0) { return -1;}\n"); + printf (" fetch_str (l);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" if (in_remaining () < 8) { return -1;}\n"); + printf (" fetch_double ();\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_skip (c->args[i], vars, i + 1) >= 0); + } + free (vars); + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_constructor_fetch (struct tl_combinator *c) { + printf ("int fetch_constructor_%s (struct paramed_type *T) {\n", c->print_id); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" return -1;\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, 0); + + if (c->name == NAME_INT) { + printf (" if (in_remaining () < 4) { return -1;}\n"); + printf (" eprintf (\" %%d\", fetch_int ());\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" if (in_remaining () < 8) { return -1;}\n"); + printf (" eprintf (\" %%"_PRINTF_INT64_"d\", fetch_long ());\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING) { + printf (" static char buf[1 << 22];\n"); + printf (" int l = prefetch_strlen ();\n"); + printf (" if (l < 0 || (l >= (1 << 22) - 2)) { return -1; }\n"); + printf (" memcpy (buf, fetch_str (l), l);\n"); + printf (" buf[l] = 0;\n"); + printf (" print_escaped_string (buf, l);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" if (in_remaining () < 8) { return -1;}\n"); + printf (" eprintf (\" %%lf\", fetch_double ());\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } + + assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + if (!empty) { + printf (" eprintf (\" %s\");\n", c->id); + printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n"); + } + + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_fetch (c->args[i], vars, i + 1, empty) >= 0); + } + free (vars); + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_constructor_store (struct tl_combinator *c) { + printf ("int store_constructor_%s (struct paramed_type *T) {\n", c->print_id); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" return -1;\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + assert (c->var_num <= 10); + gen_uni_skip (c->result, s, vars, 1, 0); + + if (c->name == NAME_INT) { + printf (" if (is_int ()) {\n"); + printf (" out_int (get_int ());\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" if (is_int ()) {\n"); + printf (" out_long (get_int ());\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING) { + printf (" if (cur_token_len >= 0) {\n"); + printf (" out_cstring (cur_token, cur_token_len);\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" if (is_double ()) {\n"); + printf (" out_double (get_double());\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } + + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_store (c->args[i], vars, i + 1, 0, empty) >= 0); + } + + free (vars); + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_constructor_autocomplete (struct tl_combinator *c) { + printf ("int autocomplete_constructor_%s (struct paramed_type *T) {\n", c->print_id); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" return -1;\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + assert (c->var_num <= 10); + gen_uni_skip (c->result, s, vars, 1, 0); + + if (c->name == NAME_INT) { + printf (" if (is_int ()) {\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" if (is_int ()) {\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING) { + printf (" if (cur_token_len >= 0) {\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" if (is_double ()) {\n"); + printf (" local_next_token ();\n"); + printf (" return 0;\n"); + printf (" } else {\n"); + printf (" return -1;\n"); + printf (" }\n"); + printf ("}\n"); + return; + } + + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_autocomplete (c->args[i], vars, i + 1, 0, empty) >= 0); + } + + free (vars); + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_constructor_fetch_ds (struct tl_combinator *c) { + print_c_type_name (c->result, "", 0); + printf ("fetch_ds_constructor_%s (struct paramed_type *T) {\n", c->print_id); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" assert (0);\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, 1); + + printf (" "); + print_c_type_name (c->result, " ", 0); + printf (" result = talloc0 (sizeof (*result));\n"); + + struct tl_type *T = ((struct tl_tree_type *)c->result)->type; + if (T->constructors_num > 1) { + printf (" result->magic = 0x%08x;\n", c->name); + } + + if (c->name == NAME_INT) { + printf (" assert (in_remaining () >= 4);\n"); + printf (" *result = fetch_int ();\n"); + printf (" return result;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" assert (in_remaining () >= 8);\n"); + printf (" *result = fetch_long ();\n"); + printf (" return result;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { + printf (" assert (in_remaining () >= 4);\n"); + printf (" int l = prefetch_strlen ();\n"); + printf (" assert (l >= 0);\n"); + printf (" result->len = l;\n"); + printf (" result->data = talloc (l + 1);\n"); + printf (" result->data[l] = 0;\n"); + printf (" memcpy (result->data, fetch_str (l), l);\n"); + printf (" return result;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" assert (in_remaining () >= 8);\n"); + printf (" *result = fetch_double ();\n"); + printf (" return result;\n"); + printf ("}\n"); + return; + } + + assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_fetch_ds (c->args[i], vars, i + 1, empty) >= 0); + } + free (vars); + printf (" return result;\n"); + printf ("}\n"); +} + +void gen_constructor_free_ds (struct tl_combinator *c) { + printf ("void free_ds_constructor_%s (", c->print_id); + print_c_type_name (c->result, "", 0); + printf ("D, struct paramed_type *T) {\n"); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" assert (0);\n"); + printf ("}\n"); + return; + } + + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, -1); + + //printf (" "); + //print_c_type_name (c->result, " ", 0); + //printf (" result = talloc0 (sizeof (*result));\n"); + + //struct tl_type *T = ((struct tl_tree_type *)c->result)->type; + + if (c->name == NAME_INT) { + printf (" tfree (D, sizeof (*D));\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" tfree (D, sizeof (*D));\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { + printf (" tfree (D->data, D->len + 1);\n"); + printf (" tfree (D, sizeof (*D));\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" tfree (D, sizeof (*D));\n"); + printf ("}\n"); + return; + } + + assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_free_ds (c->args[i], vars, i + 1, empty) >= 0); + } + free (vars); + printf ("}\n"); +} + +void gen_constructor_store_ds (struct tl_combinator *c) { + printf ("void store_ds_constructor_%s (", c->print_id); + print_c_type_name (c->result, "", 0); + printf ("D, struct paramed_type *T) {\n"); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" assert (0);\n"); + printf ("}\n"); + return; + } + + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, -1); + + //printf (" "); + //print_c_type_name (c->result, " ", 0); + //printf (" result = talloc0 (sizeof (*result));\n"); + + //struct tl_type *T = ((struct tl_tree_type *)c->result)->type; + + if (c->name == NAME_INT) { + printf (" out_int (*D);\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" out_long (*D);\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { + printf (" out_cstring (D->data, D->len);\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" out_double (*D);\n"); + printf ("}\n"); + return; + } + + assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_store_ds (c->args[i], vars, i + 1, empty) >= 0); + } + free (vars); + printf ("}\n"); +} + +void gen_constructor_print_ds (struct tl_combinator *c) { + printf ("int print_ds_constructor_%s (", c->print_id); + print_c_type_name (c->result, "", 0); + printf ("DS, struct paramed_type *T) {\n"); + int i; + for (i = 0; i < c->args_num; i++) if (c->args[i]->flags & FLAG_EXCL) { + printf (" return -1;\n"); + printf ("}\n"); + return; + } + static char s[10000]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + sprintf_s (s, 10000, "T"); +#else + sprintf (s, "T"); +#endif + + int *vars = malloc0 (c->var_num * 4);; + gen_uni_skip (c->result, s, vars, 1, 0); + + if (c->name == NAME_INT) { + printf (" eprintf (\" %%d\", *DS);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_LONG) { + printf (" eprintf (\" %%"_PRINTF_INT64_"d\", *DS);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_STRING || c->name == NAME_BYTES) { + printf (" print_escaped_string (DS->data, DS->len);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } else if (c->name == NAME_DOUBLE) { + printf (" eprintf (\" %%lf\", *DS);\n"); + printf (" return 0;\n"); + printf ("}\n"); + return; + } + + assert (c->result->methods->type (c->result) == NODE_TYPE_TYPE); + int empty = is_empty (((struct tl_tree_type *)c->result)->type); + if (!empty) { + printf (" eprintf (\" %s\");\n", c->id); + printf (" if (multiline_output >= 2) { eprintf (\"\\n\"); }\n"); + } + + + for (i = 0; i < c->args_num; i++) if (!(c->args[i]->flags & FLAG_OPT_VAR)) { + assert (gen_field_print_ds (c->args[i], vars, i + 1, empty) >= 0); + } + free (vars); + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_type_skip (struct tl_type *t) { + printf ("int skip_type_%s (struct paramed_type *T) {\n", t->print_id); + printf (" if (in_remaining () < 4) { return -1;}\n"); + printf (" int magic = fetch_int ();\n"); + printf (" switch (magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: return skip_constructor_%s (T);\n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: return -1;\n"); + printf (" }\n"); + printf ("}\n"); + printf ("int skip_type_bare_%s (struct paramed_type *T) {\n", t->print_id); + if (t->constructors_num > 1) { + printf (" int *save_in_ptr = in_ptr;\n"); + for (i = 0; i < t->constructors_num; i++) { + printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id); + printf (" in_ptr = save_in_ptr;\n"); + } + } else { + for (i = 0; i < t->constructors_num; i++) { + printf (" if (skip_constructor_%s (T) >= 0) { return 0; }\n", t->constructors[i]->print_id); + } + } + printf (" return -1;\n"); + printf ("}\n"); +} + +void gen_type_fetch (struct tl_type *t) { + int empty = is_empty (t);; + printf ("int fetch_type_%s (struct paramed_type *T) {\n", t->print_id); + printf (" if (in_remaining () < 4) { return -1;}\n"); + if (!empty) { + printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); + printf (" eprintf (\" (\");\n"); + } + printf (" int magic = fetch_int ();\n"); + printf (" int res = -1;\n"); + printf (" switch (magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: res = fetch_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: return -1;\n"); + printf (" }\n"); + if (!empty) { + printf (" if (res >= 0) {\n"); + printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n"); + printf (" eprintf (\" )\");\n"); + //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n"); + printf (" }\n"); + } + printf (" return res;\n"); + printf ("}\n"); + printf ("int fetch_type_bare_%s (struct paramed_type *T) {\n", t->print_id); + if (t->constructors_num > 1) { + printf (" int *save_in_ptr = in_ptr;\n"); + + if (!empty) { + printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); + } + for (i = 0; i < t->constructors_num; i++) { + printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; %sassert (!fetch_constructor_%s (T)); %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "eprintf (\" (\"); ", t->constructors[i]->print_id , empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");"); + printf (" in_ptr = save_in_ptr;\n"); + } + } else { + for (i = 0; i < t->constructors_num; i++) { + if (!empty) { + printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); + printf (" eprintf (\" (\");\n"); + } + printf (" if (fetch_constructor_%s (T) >= 0) { %sreturn 0; }\n", t->constructors[i]->print_id, empty ? "" : "if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (\" )\");" ); + } + } + printf (" return -1;\n"); + printf ("}\n"); +} + +void gen_type_store (struct tl_type *t) { + int empty = is_empty (t);; + int k = 0; + for (k = 0; k < 2; k++) { + printf ("int store_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id); + if (empty) { + if (!k) { + printf (" out_int (0x%08x);\n", t->constructors[0]->name); + } + printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); + printf (" return 0;\n"); + printf ("}\n"); + } else { + printf (" expect_token (\"(\", 1);\n"); + printf (" if (cur_token_len < 0) { return -1; }\n"); + printf (" if (cur_token_len < 0) { return -1; }\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id); + if (!k) { + printf (" out_int (0x%08x);\n", t->constructors[i]->name); + } + printf (" local_next_token ();\n"); + printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id); + printf (" expect_token (\")\", 1);\n"); + printf (" return 0;\n"); + printf (" }\n"); + } + /*if (t->constructors_num == 1) { + printf (" if (!force) {\n"); + if (!k) { + printf (" out_int (0x%08x);\n", t->constructors[0]->name); + } + printf (" if (store_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); + printf (" expect_token (\")\", 1);\n"); + printf (" return 0;\n"); + printf (" }\n"); + }*/ + printf (" return -1;\n"); + printf ("}\n"); + } + } +} + +void gen_type_autocomplete (struct tl_type *t) { + int empty = is_empty (t);; + int k = 0; + for (k = 0; k < 2; k++) { + printf ("int autocomplete_type_%s%s (struct paramed_type *T) {\n", k == 0 ? "" : "bare_", t->print_id); + if (empty) { + printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); + printf (" return 0;\n"); + printf ("}\n"); + } else { + printf (" expect_token_autocomplete (\"(\", 1);\n"); + printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_%s); return -1; }\n", t->print_id); + printf (" if (cur_token_len < 0) { return -1; }\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (t->constructors[i]->id), t->constructors[i]->id); + printf (" local_next_token ();\n"); + printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[i]->print_id); + printf (" expect_token_autocomplete (\")\", 1);\n"); + printf (" return 0;\n"); + printf (" }\n"); + } + /*if (t->constructors_num == 1) { + printf (" if (!force) {\n"); + printf (" if (autocomplete_constructor_%s (T) < 0) { return -1; }\n", t->constructors[0]->print_id); + printf (" expect_token_autocomplete (\")\", 1);\n"); + printf (" return 0;\n"); + printf (" }\n"); + }*/ + printf (" return -1;\n"); + printf ("}\n"); + } + } +} + +void gen_type_fetch_ds (struct tl_type *t) { + //int empty = is_empty (t);; + print_c_type_name (t->constructors[0]->result, "", 0); + + printf ("fetch_ds_type_%s (struct paramed_type *T) {\n", t->print_id); + printf (" assert (in_remaining () >= 4);\n"); + printf (" int magic = fetch_int ();\n"); + printf (" switch (magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: return fetch_ds_constructor_%s (T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: assert (0); return NULL;\n"); + printf (" }\n"); + printf ("}\n"); + print_c_type_name (t->constructors[0]->result, "", 0); + printf ("fetch_ds_type_bare_%s (struct paramed_type *T) {\n", t->print_id); + if (t->constructors_num > 1) { + printf (" int *save_in_ptr = in_ptr;\n"); + + for (i = 0; i < t->constructors_num; i++) { + printf (" if (skip_constructor_%s (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_%s (T); }\n", t->constructors[i]->print_id, t->constructors[i]->print_id); + } + } else { + printf (" return fetch_ds_constructor_%s (T);\n", t->constructors[0]->print_id); + } + printf (" assert (0);\n"); + printf (" return NULL;\n"); + printf ("}\n"); +} + +void gen_type_free_ds (struct tl_type *t) { + printf ("void free_ds_type_%s (", t->print_id); + print_c_type_name (t->constructors[0]->result, "", 0); + printf ("D, struct paramed_type *T) {\n"); + + if (t->constructors_num > 1) { + printf (" switch (D->magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: free_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: assert (0);\n"); + printf (" }\n"); + } else { + printf (" free_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id); + } + printf ("}\n"); +} + +void gen_type_store_ds (struct tl_type *t) { + int k; + for (k = 0; k < 2; k++) { + if (k == 0) { + printf ("void store_ds_type_%s (", t->print_id); + } else { + printf ("void store_ds_type_bare_%s (", t->print_id); + } + print_c_type_name (t->constructors[0]->result, "", 0); + printf ("D, struct paramed_type *T) {\n"); + + if (t->constructors_num > 1) { + if (k == 0) { + printf (" out_int (D->magic);\n"); + } + printf (" switch (D->magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: store_ds_constructor_%s (D, T); return; \n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: assert (0);\n"); + printf (" }\n"); + } else { + if (k == 0) { + printf (" out_int (0x%08x);\n", t->constructors[0]->name); + } + printf (" store_ds_constructor_%s (D, T); return; \n", t->constructors[0]->print_id); + } + printf ("}\n"); + } +} + +void gen_type_print_ds (struct tl_type *t) { + int empty = is_empty (t);; + int k; + for (k = 0; k < 2; k++) { + printf ("int print_ds_type_%s%s (", k ? "bare_" : "", t->print_id); + print_c_type_name (t->constructors[0]->result, "", 0); + printf ("DS, struct paramed_type *T) {\n"); + printf (" int res;\n"); + if (!empty) { + printf (" if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }\n"); + printf (" eprintf (\" (\");\n"); + } + if (t->constructors_num > 1) { + printf (" switch (DS->magic) {\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" case 0x%08x: res = print_ds_constructor_%s (DS, T); break;\n", t->constructors[i]->name, t->constructors[i]->print_id); + } + printf (" default: return -1;\n"); + printf (" }\n"); + } else { + printf (" res = print_ds_constructor_%s (DS, T);\n", t->constructors[0]->print_id); + } + if (!empty) { + printf (" if (res >= 0) {\n"); + printf (" if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }\n"); + printf (" eprintf (\" )\");\n"); + //printf (" if (multiline_output >= 2) { printf (\"\\n\"); }\n"); + printf (" }\n"); + } + printf (" return res;\n"); + printf ("}\n"); + } +} + +void gen_function_store (struct tl_combinator *f) { + printf ("struct paramed_type *store_function_%s (void) {\n", f->print_id); + int i; + + int *vars = malloc0 (f->var_num * 4);; + assert (f->var_num <= 10); + + for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) { + if (f->args[i]->flags & FLAG_EXCL) { + assert (gen_field_store_excl (f->args[i], vars, i + 1, 1) >= 0); + } else { + assert (gen_field_store (f->args[i], vars, i + 1, 1, 0) >= 0); + } + } + + + printf (" struct paramed_type *R = \n"); + assert (gen_create (f->result, vars, 2) >= 0); + printf (";\n"); + + free (vars); + printf (" return paramed_type_dup (R);\n"); + printf ("}\n"); +} + +void gen_function_autocomplete (struct tl_combinator *f) { + printf ("struct paramed_type *autocomplete_function_%s (void) {\n", f->print_id); + int i; + + int *vars = malloc0 (f->var_num * 4);; + assert (f->var_num <= 10); + + for (i = 0; i < f->args_num; i++) if (!(f->args[i]->flags & FLAG_OPT_VAR)) { + if (f->args[i]->flags & FLAG_EXCL) { + assert (gen_field_autocomplete_excl (f->args[i], vars, i + 1, 1) >= 0); + } else { + assert (gen_field_autocomplete (f->args[i], vars, i + 1, 1, 0) >= 0); + } + } + + printf (" struct paramed_type *R = \n"); + assert (gen_create (f->result, vars, 2) >= 0); + printf (";\n"); + + free (vars); + printf (" return paramed_type_dup (R);\n"); + printf ("}\n"); +} + +void gen_type_do_autocomplete (struct tl_type *t) { + printf ("int do_autocomplete_type_%s (const char *text, int text_len, int index, char **R) {\n", t->print_id); + printf (" index ++;\n"); + int i; + for (i = 0; i < t->constructors_num; i++) { + printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, t->constructors[i]->id, t->constructors[i]->id); + } + printf (" *R = 0;\n"); + printf (" return 0;\n"); + printf ("}\n"); +} + +struct tl_tree *read_num_var (int *var_num) { + struct tl_tree_var_num *T = malloc0 (sizeof (*T)); + T->self.flags = 0; + T->self.methods = &tl_pvar_num_methods;; + T->dif = get_int (); + T->var_num = get_int (); + + if (T->var_num >= *var_num) { + *var_num = T->var_num + 1; + } + assert (!(T->self.flags & FLAG_NOVAR)); + return (void *)T; +} + +struct tl_tree *read_type_var (int *var_num) { + struct tl_tree_var_type *T = malloc0 (sizeof (*T)); + T->self.methods = &tl_pvar_type_methods; + T->var_num = get_int (); + T->self.flags = get_int (); + if (T->var_num >= *var_num) { + *var_num = T->var_num + 1; + } + assert (!(T->self.flags & (FLAG_NOVAR | FLAG_BARE))); + return (void *)T; +} + +struct tl_tree *read_array (int *var_num) { + struct tl_tree_array *T = malloc0 (sizeof (*T)); + T->self.methods = &tl_parray_methods; + T->self.flags = 0; + T->multiplicity = read_nat_expr (var_num); + assert (T->multiplicity); + + T->args_num = get_int (); + assert (T->args_num >= 0 && T->args_num <= 1000); + T->args = malloc0 (sizeof (void *) * T->args_num); + + assert (read_args_list (T->args, T->args_num, var_num) >= 0); + T->self.flags |= FLAG_NOVAR; + int i; + for (i = 0; i < T->args_num; i++) { + if (!(T->args[i]->flags & FLAG_NOVAR)) { + T->self.flags &= ~FLAG_NOVAR; + } + } + return (void *)T; +} + +struct tl_tree *read_type (int *var_num) { + struct tl_tree_type *T = malloc0 (sizeof (*T)); + T->self.methods = &tl_ptype_methods; + + T->type = tl_type_get_by_name (get_int ()); + assert (T->type); + T->self.flags = get_int (); + T->children_num = get_int (); + assert (T->type->arity == T->children_num); + T->children = malloc0 (sizeof (void *) * T->children_num); + int i; + T->self.flags |= FLAG_NOVAR; + for (i = 0; i < T->children_num; i++) { + int t = get_int (); + if (t == (int)TLS_EXPR_NAT) { +#ifdef _MSC_VER + assert ((T->type->params_types & (1i64 << i))); +#else + assert ((T->type->params_types & (1 << i))); +#endif + T->children[i] = read_nat_expr (var_num); + } else if (t == (int)TLS_EXPR_TYPE) { +#ifdef _MSC_VER + assert (!(T->type->params_types & (1i64 << i))); +#else + assert (!(T->type->params_types & (1 << i))); +#endif + T->children[i] = read_type_expr (var_num); + } else { + assert (0); + } + if (!TL_IS_NAT_VAR (T->children[i]) && !(T->children[i]->flags & FLAG_NOVAR)) { + T->self.flags &= ~FLAG_NOVAR; + } + } + return (void *)T; +} + +struct tl_tree *read_tree (int *var_num) { + int x = get_int (); + if (verbosity >= 2) { + fprintf (stderr, "read_tree: constructor = 0x%08x\n", x); + } + switch (x) { + case TLS_TREE_NAT_CONST: + return read_num_const (var_num); + case TLS_TREE_NAT_VAR: + return read_num_var (var_num); + case TLS_TREE_TYPE_VAR: + return read_type_var (var_num); + case TLS_TREE_TYPE: + return read_type (var_num); + case TLS_TREE_ARRAY: + return read_array (var_num); + default: + if (verbosity) { + fprintf (stderr, "x = %d\n", x); + } + assert (0); + return 0; + } +} + +struct tl_tree *read_type_expr (int *var_num) { + int x = get_int (); + if (verbosity >= 2) { + fprintf (stderr, "read_type_expr: constructor = 0x%08x\n", x); + } + switch (x) { + case TLS_TYPE_VAR: + return read_type_var (var_num); + case TLS_TYPE_EXPR: + return read_type (var_num); + case TLS_ARRAY: + return read_array (var_num); + default: + if (verbosity) { + fprintf (stderr, "x = %d\n", x); + } + assert (0); + return 0; + } +} + +struct tl_tree *read_nat_expr (int *var_num) { + int x = get_int (); + if (verbosity >= 2) { + fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x); + } + switch (x) { + case TLS_NAT_CONST: + return read_num_const (var_num); + case TLS_NAT_VAR: + return read_num_var (var_num); + default: + if (verbosity) { + fprintf (stderr, "x = %d\n", x); + } + assert (0); + return 0; + } +} + +struct tl_tree *read_expr (int *var_num) { + int x = get_int (); + if (verbosity >= 2) { + fprintf (stderr, "read_nat_expr: constructor = 0x%08x\n", x); + } + switch (x) { + case TLS_EXPR_NAT: + return read_nat_expr (var_num); + case TLS_EXPR_TYPE: + return read_type_expr (var_num); + default: + if (verbosity) { + fprintf (stderr, "x = %d\n", x); + } + assert (0); + return 0; + } +} + +int read_args_list (struct arg **args, int args_num, int *var_num) { + int i; + for (i = 0; i < args_num; i++) { + args[i] = malloc0 (sizeof (struct arg)); + args[i]->exist_var_num = -1; + args[i]->exist_var_bit = 0; + assert (get_int () == TLS_ARG_V2); + args[i]->id = get_string (); + args[i]->flags = get_int (); + + if (args[i]->flags & 2) { + args[i]->flags &= ~2; + args[i]->flags |= (1 << 20); + } + if (args[i]->flags & 4) { + args[i]->flags &= ~4; + args[i]->var_num = get_int (); + } else { + args[i]->var_num = -1; + } + + int x = args[i]->flags & 6; + args[i]->flags &= ~6; + if (x & 2) { args[i]->flags |= 4; } + if (x & 4) { args[i]->flags |= 2; } + + if (args[i]->var_num >= *var_num) { + *var_num = args[i]->var_num + 1; + } + if (args[i]->flags & FLAG_OPT_FIELD) { + args[i]->exist_var_num = get_int (); + args[i]->exist_var_bit = get_int (); + } + args[i]->type = read_type_expr (var_num); + assert (args[i]->type); + + if (args[i]->var_num < 0 && args[i]->exist_var_num < 0 && (TL_IS_NAT_VAR(args[i]->type) || (args[i]->type->flags & FLAG_NOVAR))) { + args[i]->flags |= FLAG_NOVAR; + } + } + return 1; +} + +int read_combinator_args_list (struct tl_combinator *c) { + c->args_num = get_int (); + if (verbosity >= 2) { + fprintf (stderr, "c->id = %s, c->args_num = %d\n", c->id, c->args_num); + } + assert (c->args_num >= 0 && c->args_num <= 1000); + c->args = malloc0 (sizeof (void *) * c->args_num); + c->var_num = 0; + return read_args_list (c->args, c->args_num, &c->var_num); +} + +int read_combinator_right (struct tl_combinator *c) { + assert (get_int () == TLS_COMBINATOR_RIGHT_V2); + c->result = read_type_expr (&c->var_num); + assert (c->result); + return 1; +} + +int read_combinator_left (struct tl_combinator *c) { + int x = get_int (); + + if (x == (int)TLS_COMBINATOR_LEFT_BUILTIN) { + c->args_num = 0; + c->var_num = 0; + c->args = 0; + return 1; + } else if (x == TLS_COMBINATOR_LEFT) { + return read_combinator_args_list (c); + } else { + assert (0); + return -1; + } +} + +char *gen_print_id (const char *id) { + static char s[1000]; + char *ptr = s; + int first = 1; + while (*id) { + if (*id == '.') { + *(ptr ++) = '_'; + } else if (*id >= 'A' && *id <= 'Z') { + if (!first && *(ptr - 1) != '_') { + *(ptr ++) = '_'; + } + *(ptr ++) = *id - 'A' + 'a'; + } else { + *(ptr ++) = *id; + } + id ++; + first = 0; + } + *ptr = 0; + return s; +} + +struct tl_combinator *read_combinators (int v) { + struct tl_combinator *c = malloc0 (sizeof (*c)); + c->name = get_int (); + c->id = get_string (); + c->print_id = strdup (gen_print_id (c->id)); + assert (c->print_id); + //char *s = c->id; + //while (*s) { if (*s == '.') { *s = '_'; } ; s ++;} + int x = get_int (); + struct tl_type *t = tl_type_get_by_name (x); + assert (t || (!x && v == 3)); + + if (v == 2) { + assert (t->extra < t->constructors_num); + t->constructors[t->extra ++] = c; + c->is_fun = 0; + } else { + assert (v == 3); + tl_function_insert_by_name (c); + c->is_fun = 1; + } + assert (read_combinator_left (c) >= 0); + assert (read_combinator_right (c) >= 0); + return c; +} + +struct tl_type *read_types (void) { + struct tl_type *t = malloc0 (sizeof (*t)); + t->name = get_int (); + t->id = get_string (); + t->print_id = strdup (gen_print_id (t->id)); + assert (t->print_id); + + t->constructors_num = get_int (); + assert (t->constructors_num >= 0 && t->constructors_num <= 1000); + + t->constructors = malloc0 (sizeof (void *) * t->constructors_num); + t->flags = get_int (); + t->arity = get_int (); + t->params_types = get_long (); // params_types + t->extra = 0; + tl_type_insert_by_name (t); + return t; +} + + + +char *gen_what[1000]; +int gen_what_cnt; + + +void gen_skip_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("int skip_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("int skip_type_%s (struct paramed_type *T);\n", tps[i]->print_id); + printf ("int skip_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); + } + printf ("int skip_type_any (struct paramed_type *T);\n"); +} + +void gen_skip_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"..\\auto-static-skip.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto-static-skip.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_skip (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_skip (tps[i]); + } + printf ("int skip_type_any (struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return skip_type_%s (T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return skip_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return -1; }\n"); + printf ("}\n"); +} + +void gen_fetch_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + printf ("#include \n"); + + printf ("struct tgl_state;\n"); + printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("int fetch_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("int fetch_type_%s (struct paramed_type *T);\n", tps[i]->print_id); + printf ("int fetch_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); + } + printf ("int fetch_type_any (struct paramed_type *T);\n"); +} + +void gen_fetch_source (void) { + printf ("#ifdef _MSC_VER \n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-fetch.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"..\\auto-static-fetch.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-fetch.h\"\n"); + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto-static-fetch.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_fetch (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_fetch (tps[i]); + } + printf ("int fetch_type_any (struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return fetch_type_%s (T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return fetch_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return -1; }\n"); + printf ("}\n"); +} + +void gen_store_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + + printf ("struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len);\n"); + printf ("int tglf_store_type (struct tgl_state *TLS, const char *work, int work_len, struct paramed_type *P);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("int store_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("int store_type_%s (struct paramed_type *T);\n", tps[i]->print_id); + printf ("int store_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); + } + for (i = 0; i < fn; i++) { + printf ("struct paramed_type *store_function_%s (void);\n", fns[i]->print_id); + } + printf ("int store_type_any (struct paramed_type *T);\n"); + printf ("struct paramed_type *store_function_any (void);\n"); +} + +void gen_store_source (void ) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#include \"auto-store.h\"\n"); + printf ("#include \"..\\auto-static-store.c\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"mtproto-common.h\"\n"); + printf ("#include \"auto/auto-store.h\"\n"); + printf ("#include \"auto-static-store.c\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_store (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_store (tps[i]); + } + for (i = 0; i < fn; i++) { + gen_function_store (fns[i]); + } + printf ("int store_type_any (struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return store_type_%s (T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return store_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return -1; }\n"); + printf ("}\n"); + printf ("struct paramed_type *store_function_any (void) {\n"); + printf (" if (cur_token_len != 1 || *cur_token != '(') { return 0; }\n"); + printf (" local_next_token ();\n"); + printf (" if (cur_token_len == 1 || *cur_token == '.') { \n"); + printf (" local_next_token ();\n"); + printf (" if (cur_token_len != 1 || *cur_token != '=') { return 0; }\n"); + printf (" local_next_token ();\n"); + printf (" };\n"); + printf (" if (cur_token_len < 0) { return 0; }\n"); + for (i = 0; i < fn; i++) { + printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id); + printf (" out_int (0x%08x);\n", fns[i]->name); + printf (" local_next_token ();\n"); + printf (" struct paramed_type *P = store_function_%s ();\n", fns[i]->print_id); + printf (" if (!P) { return 0; }\n"); + printf (" if (cur_token_len != 1 || *cur_token != ')') { return 0; }\n"); + printf (" local_next_token ();\n"); + printf (" return P;\n"); + printf (" }\n"); + } + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_autocomplete_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + printf ("int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("int autocomplete_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("int autocomplete_type_%s (struct paramed_type *T);\n", tps[i]->print_id); + printf ("int do_autocomplete_type_%s (const char *text, int len, int index, char **R);\n", tps[i]->print_id); + printf ("int autocomplete_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); + } + printf ("int autocomplete_type_any (struct paramed_type *T);\n"); + printf ("struct paramed_type *autocomplete_function_any (void);\n"); +} + +void gen_autocomplete_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#include \"auto-autocomplete.h\"\n"); + printf ("#include \"..\\auto-static-autocomplete.c\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"mtproto-common.h\"\n"); + printf ("#include \"auto/auto-autocomplete.h\"\n"); + printf ("#include \"auto-static-autocomplete.c\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_autocomplete (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_autocomplete (tps[i]); + gen_type_do_autocomplete (tps[i]); + } + for (i = 0; i < fn; i++) { + gen_function_autocomplete (fns[i]); + } + printf ("int autocomplete_type_any (struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return autocomplete_type_%s (T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return autocomplete_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return -1; }\n"); + printf ("}\n"); + printf ("int do_autocomplete_function (const char *text, int text_len, int index, char **R) {\n"); + printf (" index ++;\n"); + for (i = 0; i < fn; i++) { + printf (" if (index == %d) { if (!strncmp (text, \"%s\", text_len)) { *R = tstrdup (\"%s\"); return index; } else { index ++; }}\n", i, fns[i]->id, fns[i]->id); + } + printf (" *R = 0;\n"); + printf (" return 0;\n"); + printf ("}\n"); + printf ("struct paramed_type *autocomplete_function_any (void) {\n"); + printf (" expect_token_ptr_autocomplete (\"(\", 1);\n"); + printf (" if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); }\n"); + printf (" if (cur_token_len < 0) { return 0; }\n"); + for (i = 0; i < fn; i++) { + printf (" if (cur_token_len == %d && !memcmp (cur_token, \"%s\", cur_token_len)) {\n", (int)strlen (fns[i]->id), fns[i]->id); + printf (" local_next_token ();\n"); + printf (" struct paramed_type *P = autocomplete_function_%s ();\n", fns[i]->print_id); + printf (" if (!P) { return 0; }\n"); + printf (" expect_token_ptr_autocomplete (\")\", 1);\n"); + printf (" return P;\n"); + printf (" }\n"); + } + printf (" return 0;\n"); + printf ("}\n"); +} + +void gen_types_header (void) { + printf ("#ifndef __AUTO_TYPES_H__\n"); + printf ("#define __AUTO_TYPES_H__\n"); + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + int i; + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("extern struct tl_type_descr tl_type_%s;\n", tps[i]->print_id); + printf ("extern struct tl_type_descr tl_type_bare_%s;\n", tps[i]->print_id); + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("struct tl_ds_%s {\n", tps[i]->print_id); +#if !defined(__STDC__) || __STDC_VERSION__ < 199901L + if (tps[i]->constructors_num == 1 && tps[i]->constructors[0]->args_num == 0 && + !(!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes"))) { + printf (" int : 0;\n"); + printf ("};\n"); + continue; + } +#endif + + if (!strcmp (tps[i]->id, "String") || !strcmp (tps[i]->id, "Bytes")) { + printf (" int len;\n"); + printf (" char *data;\n"); + printf ("};\n"); + continue; + } + int j; + if (tps[i]->constructors_num > 1) { + printf (" unsigned magic;\n"); + } + for (j = 0; j < tps[i]->constructors_num; j++) { + struct tl_combinator *c = tps[i]->constructors[j]; + int k; + for (k = 0; k < c->args_num; k++) { + if ((c->args[k]->flags & FLAG_OPT_VAR)) { continue; } + if (c->args[k]->id && strlen (c->args[k]->id) && j > 0) { + int l; + int ok = 1; + for (l = 0; l < j && ok; l++) { + int m; + struct tl_combinator *d = tps[i]->constructors[l]; + for (m = 0; m < d->args_num && ok; m++) { + if (d->args[m]->id && !strcmp (d->args[m]->id, c->args[k]->id)) { + ok = 0; + } + } + } + if (!ok) { continue; } + } + + printf (" "); + print_c_type_name (c->args[k]->type, " ", 1); + + if (!c->args[k]->id || !strlen (c->args[k]->id)) { + assert (!j); + + printf ("f%d;\n", k); + } else { + printf ("%s;\n", c->args[k]->id); + } + } + } + printf ("};\n"); + } + printf ("#endif\n"); +} + +void gen_types_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + int i; + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("struct tl_type_descr tl_type_%s = {\n", tps[i]->print_id); + printf (" .name = 0x%08x,\n", tps[i]->name); + printf (" .id = \"%s\"\n,", tps[i]->id); + printf (" .params_num = %d,\n", tps[i]->arity); + printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types); + printf ("};\n"); + printf ("struct tl_type_descr tl_type_bare_%s = {\n", tps[i]->print_id); + printf (" .name = 0x%08x,\n", ~tps[i]->name); + printf (" .id = \"Bare_%s\",\n", tps[i]->id); + printf (" .params_num = %d,\n", tps[i]->arity); + printf (" .params_types = %"_PRINTF_INT64_"d\n", tps[i]->params_types); + printf ("};\n"); + } +} + +void gen_fetch_ds_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-fetch-ds.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#include \"..\\auto-static-fetch-ds.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-fetch-ds.h\"\n"); + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto/auto-types.h\"\n"); + printf ("#include \"auto-static-fetch-ds.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_fetch_ds (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_fetch_ds (tps[i]); + } + printf ("void *fetch_ds_type_any (struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return fetch_ds_type_%s (T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return fetch_ds_type_bare_%s (T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return NULL; }\n"); + printf ("}\n"); +} + +void gen_fetch_ds_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + printf ("#include \n"); + + printf ("struct tgl_state;\n"); + //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + print_c_type_name (tps[i]->constructors[j]->result, "", 0); + printf ("fetch_ds_constructor_%s (struct paramed_type *T);\n", tps[i]->constructors[j]->print_id); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("fetch_ds_type_%s (struct paramed_type *T);\n", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("fetch_ds_type_bare_%s (struct paramed_type *T);\n", tps[i]->print_id); + } + printf ("void *fetch_ds_type_any (struct paramed_type *T);\n"); +} + +void gen_free_ds_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-free-ds.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#include \"..\\auto-static-free-ds.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-free-ds.h\"\n"); + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto/auto-types.h\"\n"); + printf ("#include \"auto-static-free-ds.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_free_ds (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_free_ds (tps[i]); + } + printf ("void free_ds_type_any (void *D, struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: free_ds_type_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return; }\n"); + printf ("}\n"); +} + +void gen_free_ds_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#include \"auto/auto-types.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + printf ("#include \n"); + + printf ("struct tgl_state;\n"); + //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("void free_ds_constructor_%s (", tps[i]->constructors[j]->print_id); + print_c_type_name (tps[i]->constructors[j]->result, "", 0); + printf ("D, struct paramed_type *T);\n"); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("void free_ds_type_%s (", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("D, struct paramed_type *T);\n"); + } + printf ("void free_ds_type_any (void *D, struct paramed_type *T);\n"); +} + +void gen_store_ds_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-store-ds.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#include \"..\\auto-static-store-ds.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-store-ds.h\"\n"); + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto/auto-types.h\"\n"); + printf ("#include \"auto-static-store-ds.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_store_ds (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_store_ds (tps[i]); + } + printf ("void store_ds_type_any (void *D, struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: store_ds_type_%s (D, T); return;\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: store_ds_type_bare_%s (D, T); return;\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return; }\n"); + printf ("}\n"); +} + +void gen_store_ds_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#include \"auto/auto-types.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + printf ("#include \n"); + + printf ("struct tgl_state;\n"); + //printf ("char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("void store_ds_constructor_%s (", tps[i]->constructors[j]->print_id); + print_c_type_name (tps[i]->constructors[j]->result, "", 0); + printf ("D, struct paramed_type *T);\n"); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("void store_ds_type_%s (", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("D, struct paramed_type *T);\n"); + printf ("void store_ds_type_bare_%s (", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("D, struct paramed_type *T);\n"); + } + printf ("void store_ds_type_any (void *D, struct paramed_type *T);\n"); +} + +void gen_print_ds_header (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + printf ("#include \"auto-types.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + printf ("#include \n"); + + printf ("struct tgl_state;\n"); + printf ("char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T);\n"); + + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + printf ("int print_ds_constructor_%s (", tps[i]->constructors[j]->print_id); + print_c_type_name (tps[i]->constructors[j]->result, "", 0); + printf ("DS, struct paramed_type *T);\n"); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + printf ("int print_ds_type_%s (", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("DS, struct paramed_type *T);\n"); + printf ("int print_ds_type_bare_%s (", tps[i]->print_id); + print_c_type_name (tps[i]->constructors[0]->result, "", 0); + printf ("DS, struct paramed_type *T);\n"); + } + printf ("int print_ds_type_any (void *DS, struct paramed_type *T);\n"); +} + +void gen_print_ds_source (void) { + printf ("#ifdef _MSC_VER\n"); + printf ("#include \"..\\auto.h\"\n"); + printf ("#include \"auto-print-ds.h\"\n"); + printf ("#include \"auto-skip.h\"\n"); + printf ("#include \"..\\auto-static-print-ds.c\"\n"); + printf ("#include \"..\\mtproto-common.h\"\n"); + printf ("#else\n"); + printf ("#include \"auto.h\"\n"); + + printf ("#include \"auto/auto-print-ds.h\"\n"); + printf ("#include \"auto/auto-skip.h\"\n"); + printf ("#include \"auto-static-print-ds.c\"\n"); + printf ("#include \"mtproto-common.h\"\n"); + printf ("#endif\n"); + printf ("#include \n"); + int i, j; + for (i = 0; i < tn; i++) { + for (j = 0; j < tps[i]->constructors_num; j ++) { + gen_constructor_print_ds (tps[i]->constructors[j]); + } + } + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + gen_type_print_ds (tps[i]); + } + printf ("int print_ds_type_any (void *DS, struct paramed_type *T) {\n"); + printf (" switch (T->type->name) {\n"); + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type") && tps[i]->name) { + printf (" case 0x%08x: return print_ds_type_%s (DS, T);\n", tps[i]->name, tps[i]->print_id); + printf (" case 0x%08x: return print_ds_type_bare_%s (DS, T);\n", ~tps[i]->name, tps[i]->print_id); + } + printf (" default: return -1; }\n"); + printf ("}\n"); +} + +int parse_tlo_file (void) { + buf_end = buf_ptr + (buf_size / 4); + assert (get_int () == TLS_SCHEMA_V2); + + get_int (); // version + get_int (); // date + + tn = 0; + fn = 0; + cn = 0; + int i; + + tn = get_int (); + assert (tn >= 0 && tn < 10000); + tps = malloc0 (sizeof (void *) * tn); + + if (verbosity >= 2) { + fprintf (stderr, "Found %d types\n", tn); + } + + for (i = 0; i < tn; i++) { + assert (get_int () == TLS_TYPE); + tps[i] = read_types (); + assert (tps[i]); + } + + cn = get_int (); + assert (cn >= 0); + + if (verbosity >= 2) { + fprintf (stderr, "Found %d constructors\n", cn); + } + + for (i = 0; i < cn; i++) { + assert (get_int () == TLS_COMBINATOR); + assert (read_combinators (2)); + } + + fn = get_int (); + assert (fn >= 0 && fn < 10000); + + fns = malloc0 (sizeof (void *) * fn); + + if (verbosity >= 2) { + fprintf (stderr, "Found %d functions\n", fn); + } + + for (i = 0; i < fn; i++) { + assert (get_int () == TLS_COMBINATOR); + fns[i] = read_combinators (3); + assert (fns[i]); + } + + assert (buf_ptr == buf_end); + + + int j; + for (i = 0; i < tn; i++) if (tps[i]->id[0] != '#' && strcmp (tps[i]->id, "Type")) { + tps[i]->name = 0; + for (j = 0; j < tps[i]->constructors_num; j ++) { + tps[i]->name ^= tps[i]->constructors[j]->name; + } + } + + + for (i = 0; i < gen_what_cnt; i++) { + if (!strcmp (gen_what[i], "fetch")) { + gen_fetch_source (); + } else if (!strcmp (gen_what[i], "fetch-header")) { + gen_fetch_header (); + } else if (!strcmp (gen_what[i], "skip")) { + gen_skip_source (); + } else if (!strcmp (gen_what[i], "skip-header")) { + gen_skip_header (); + } else if (!strcmp (gen_what[i], "store")) { + gen_store_source (); + } else if (!strcmp (gen_what[i], "store-header")) { + gen_store_header (); + } else if (!strcmp (gen_what[i], "autocomplete")) { + gen_autocomplete_source (); + } else if (!strcmp (gen_what[i], "autocomplete-header")) { + gen_autocomplete_header (); + } else if (!strcmp (gen_what[i], "types")) { + gen_types_source (); + } else if (!strcmp (gen_what[i], "types-header")) { + gen_types_header (); + } else if (!strcmp (gen_what[i], "fetch-ds")) { + gen_fetch_ds_source (); + } else if (!strcmp (gen_what[i], "fetch-ds-header")) { + gen_fetch_ds_header (); + } else if (!strcmp (gen_what[i], "free-ds")) { + gen_free_ds_source (); + } else if (!strcmp (gen_what[i], "free-ds-header")) { + gen_free_ds_header (); + } else if (!strcmp (gen_what[i], "store-ds")) { + gen_store_ds_source (); + } else if (!strcmp (gen_what[i], "store-ds-header")) { + gen_store_ds_header (); + } else if (!strcmp (gen_what[i], "print-ds")) { + gen_print_ds_source (); + } else if (!strcmp (gen_what[i], "print-ds-header")) { + gen_print_ds_header (); + } else { + assert (0); + } + } + + + return 0; +} + +void usage (void) { + printf ("usage: generate [-v] [-h] \n" + ); + exit (2); +} + +#ifndef _MSC_VER +void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2))); +void logprintf (const char *format __attribute__ ((unused)), ...) { +} +#endif +/* +void hexdump (int *in_ptr, int *in_end) { + int *ptr = in_ptr; + while (ptr < in_end) { printf (" %08x", *(ptr ++)); } + printf ("\n"); +}*/ + +#ifdef HAVE_EXECINFO_H +void print_backtrace (void) { + void *buffer[255]; + const int calls = backtrace (buffer, sizeof (buffer) / sizeof (void *)); + backtrace_symbols_fd (buffer, calls, 1); +} +#else +void print_backtrace (void) { + if (write (1, "No libexec. Backtrace disabled\n", 32) < 0) { + // Sad thing + } +} +#endif + +void sig_segv_handler (int signum __attribute__ ((unused))) { + if (write (1, "SIGSEGV received\n", 18) < 0) { + // Sad thing + } + print_backtrace (); + exit (EXIT_FAILURE); +} + +void sig_abrt_handler (int signum __attribute__ ((unused))) { + if (write (1, "SIGABRT received\n", 18) < 0) { + // Sad thing + } + print_backtrace (); + exit (EXIT_FAILURE); +} + +int main (int argc, char **argv) { + signal (SIGSEGV, sig_segv_handler); + signal (SIGABRT, sig_abrt_handler); + int i; + while ((i = getopt (argc, argv, "vhHg:")) != -1) { + switch (i) { + case 'h': + usage (); + return 2; + case 'v': + verbosity++; + break; + case 'H': + header ++; + break; + case 'g': + assert (gen_what_cnt < 1000); + gen_what[gen_what_cnt ++] = optarg; + break; + } + } + + if (argc != optind + 1) { + usage (); + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + errno_t err = _sopen_s(&fd, argv[optind], _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); + if(err != 0) { + char errnoStr[256] = { 0 }; + strerror_s (errnoStr, 256, err); + fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], errnoStr); +#elif defined(WIN32) || defined(_WIN32) + int fd = open (argv[optind], O_RDONLY | O_BINARY); + if (fd < 0) { + fprintf (stderr, "Can not open file '%s'. Error %s\n", argv[optind], strerror (errno)); +#else + int fd = open (argv[optind], O_RDONLY); + if (fd < 0) { + fprintf (stderr, "Can not open file '%s'. Error %m\n", argv[optind]); +#endif + exit (1); + } + buf_size = read (fd, buf, (1 << 20)); + if (fd == (1 << 20)) { + fprintf (stderr, "Too big tlo file\n"); + exit (2); + } + return parse_tlo_file (); +} diff --git a/libs/tgl/src/generate.h b/libs/tgl/src/generate.h new file mode 100644 index 0000000000..5d46a6c4ec --- /dev/null +++ b/libs/tgl/src/generate.h @@ -0,0 +1,173 @@ +/* + This file is part of tgl-libary/generate + + Tgl-library/generate is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Tgl-library/generate is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this tgl-library/generate. If not, see . + + Copyright Vitaly Valtman 2014-2015 + + It is derivative work of VK/KittenPHP-DB-Engine (https://github.com/vk-com/kphp-kdb/) + Copyright 2012-2013 Vkontakte Ltd + 2012-2013 Vitaliy Valtman +*/ + +#ifndef __GENERATE_H__ +#define __GENERATE_H__ + +struct tl_combinator; + +struct tl_type { +// struct tl_type_methods *methods; + char *id; + char *print_id; + unsigned name; + int arity; + int flags; + int constructors_num; + struct tl_combinator **constructors; + long long params_types; + int extra; +}; + +#define NODE_TYPE_TYPE 1 +#define NODE_TYPE_NAT_CONST 2 +#define NODE_TYPE_VAR_TYPE 3 +#define NODE_TYPE_VAR_NUM 4 +#define NODE_TYPE_ARRAY 5 + +#define MAX_COMBINATOR_VARS 64 + +#define NAME_VAR_NUM 0x70659eff +#define NAME_VAR_TYPE 0x2cecf817 +#define NAME_INT 0xa8509bda +#define NAME_LONG 0x22076cba +#define NAME_DOUBLE 0x2210c154 +#define NAME_STRING 0xb5286e24 +#define NAME_VECTOR 0x1cb5c415 +#define NAME_MAYBE_TRUE 0x3f9c8ef8 +#define NAME_MAYBE_FALSE 0x27930a7b +#define NAME_BOOL_FALSE 0xbc799737 +#define NAME_BOOL_TRUE 0x997275b5 +#define NAME_BYTES 0x0ee1379f + + +#define FLAG_OPT_VAR (1 << 17) +#define FLAG_EXCL (1 << 18) +#define FLAG_OPT_FIELD (1 << 20) +#define FLAG_NOVAR (1 << 21) +#define FLAG_BARE 1 +#define FLAGS_MASK ((1 << 16) - 1) +#define FLAG_DEFAULT_CONSTRUCTOR (1 << 25) +#define FLAG_NOCONS (1 << 1) + +extern struct tl_tree_methods tl_nat_const_methods; +extern struct tl_tree_methods tl_nat_const_full_methods; +extern struct tl_tree_methods tl_pnat_const_full_methods; +extern struct tl_tree_methods tl_array_methods; +extern struct tl_tree_methods tl_type_methods; +extern struct tl_tree_methods tl_parray_methods; +extern struct tl_tree_methods tl_ptype_methods; +extern struct tl_tree_methods tl_var_num_methods; +extern struct tl_tree_methods tl_var_type_methods; +extern struct tl_tree_methods tl_pvar_num_methods; +extern struct tl_tree_methods tl_pvar_type_methods; +#define TL_IS_NAT_VAR(x) (((long)x) & 1) +#define TL_TREE_METHODS(x) (TL_IS_NAT_VAR (x) ? &tl_nat_const_methods : ((struct tl_tree *)(x))->methods) + +#define DEC_REF(x) (TL_TREE_METHODS(x)->dec_ref ((void *)x)) +#define INC_REF(x) (TL_TREE_METHODS(x)->inc_ref ((void *)x)) +#define TYPE(x) (TL_TREE_METHODS(x)->type ((void *)x)) + +typedef unsigned long long tl_tree_hash_t; +struct tl_tree; + +struct tl_tree_methods { + int (*type)(struct tl_tree *T); + int (*eq)(struct tl_tree *T, struct tl_tree *U); + void (*inc_ref)(struct tl_tree *T); + void (*dec_ref)(struct tl_tree *T); +}; + +struct tl_tree { + int ref_cnt; + int flags; + //tl_tree_hash_t hash; + struct tl_tree_methods *methods; +}; +/* +struct tl_tree_nat_const { + struct tl_tree self; + int value; +};*/ + +struct tl_tree_type { + struct tl_tree self; + + struct tl_type *type; + int children_num; + struct tl_tree **children; +}; + +struct tl_tree_array { + struct tl_tree self; + + struct tl_tree *multiplicity; + int args_num; + struct arg **args; +}; + +struct tl_tree_var_type { + struct tl_tree self; + + int var_num; +}; + +struct tl_tree_var_num { + struct tl_tree self; + + int var_num; + int dif; +}; + +struct tl_tree_nat_const { + struct tl_tree self; + + long long value; +}; + +struct arg { + char *id; + int var_num; + int flags; + int exist_var_num; + int exist_var_bit; + struct tl_tree *type; +}; + +struct tl_combinator { + //struct tl_combinator_methods *methods; + char *id; + char *print_id; + unsigned name; + int is_fun; + int var_num; + int args_num; + struct arg **args; + struct tl_tree *result; + void **IP; + void **fIP; + int IP_len; + int fIP_len; +}; + +#endif diff --git a/libs/tgl/src/mime-types.c b/libs/tgl/src/mime-types.c new file mode 100644 index 0000000000..0110d3fa2e --- /dev/null +++ b/libs/tgl/src/mime-types.c @@ -0,0 +1,4421 @@ +static char mime_types[] = { + 0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x6d, 0x61, 0x70, 0x73, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x23, 0x20, 0x41, 0x6c, 0x74, + 0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2c, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, + 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, + 0x6e, 0x79, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x69, 0x73, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x23, 0x0a, 0x23, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x65, + 0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x29, 0x20, 0x75, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x0a, 0x23, 0x20, 0x41, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x74, + 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, + 0x65, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x0a, 0x23, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, + 0x67, 0x75, 0x69, 0x64, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x77, + 0x61, 0x72, 0x64, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d, + 0x61, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x65, 0x61, 0x73, 0x69, 0x65, + 0x72, 0x20, 0x74, 0x6f, 0x0a, 0x23, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x79, 0x20, 0x22, 0x6e, 0x65, 0x77, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75, + 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x63, + 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x20, 0x63, + 0x61, 0x72, 0x65, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x2e, 0x0a, 0x23, 0x0a, + 0x23, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, + 0x52, 0x46, 0x43, 0x20, 0x34, 0x32, 0x38, 0x38, 0x2e, 0x0a, 0x23, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x20, 0x69, 0x73, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x61, 0x6e, 0x61, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2d, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, 0x23, 0x0a, 0x23, 0x20, 0x4d, + 0x49, 0x4d, 0x45, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x28, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x64, 0x29, 0x09, 0x09, 0x09, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x23, + 0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x09, 0x3d, 0x3d, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x31, + 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x2d, 0x69, 0x6d, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x65, + 0x77, 0x2d, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x09, 0x09, 0x09, 0x65, 0x7a, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x78, 0x77, 0x61, 0x72, 0x65, 0x09, + 0x09, 0x09, 0x09, 0x61, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x74, 0x6f, 0x6d, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, + 0x74, 0x6f, 0x6d, 0x63, 0x61, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x61, 0x74, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x6d, 0x61, 0x69, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, + 0x74, 0x6f, 0x6d, 0x73, 0x76, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x76, 0x63, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x61, 0x75, 0x74, 0x68, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2d, + 0x73, 0x6d, 0x74, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x65, 0x65, 0x70, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, + 0x61, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x61, 0x6c, + 0x73, 0x2d, 0x31, 0x38, 0x34, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x63, 0x6d, + 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x63, 0x78, 0x6d, 0x6c, 0x2b, + 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x63, 0x63, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x61, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x63, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x09, + 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x64, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x64, 0x6d, + 0x69, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x09, + 0x63, 0x64, 0x6d, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x09, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, + 0x71, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x65, 0x61, 0x2d, 0x32, 0x30, 0x31, 0x38, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x65, 0x6c, 0x6c, 0x6d, + 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x66, 0x77, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x63, 0x6e, 0x72, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x63, 0x70, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x63, 0x73, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, + 0x73, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x63, 0x75, 0x2d, 0x73, 0x65, 0x65, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09, + 0x63, 0x75, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x63, 0x61, + 0x73, 0x68, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x64, 0x61, 0x76, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x2b, + 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x61, 0x76, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x63, 0x61, 0x2d, 0x72, 0x66, 0x74, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x64, 0x65, 0x63, 0x2d, 0x64, 0x78, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x64, 0x6e, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x6f, 0x63, 0x62, 0x6f, 0x6f, + 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x64, 0x62, 0x6b, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x64, 0x73, 0x6b, 0x70, 0x70, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x64, 0x73, 0x73, 0x63, 0x2b, 0x64, 0x65, 0x72, 0x09, 0x09, 0x09, + 0x09, 0x64, 0x73, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x73, 0x73, 0x63, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x64, 0x73, 0x73, 0x63, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x64, 0x76, 0x63, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x63, 0x6d, 0x61, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x09, 0x65, 0x63, 0x6d, + 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x2d, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x2d, 0x78, 0x31, + 0x32, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x66, 0x61, 0x63, 0x74, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x65, 0x6d, 0x6d, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x65, 0x6d, 0x6d, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x70, 0x70, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x65, 0x70, 0x75, 0x62, 0x2b, 0x7a, 0x69, 0x70, 0x09, + 0x09, 0x09, 0x09, 0x65, 0x70, 0x75, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x73, + 0x68, 0x6f, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x65, 0x78, 0x69, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65, 0x78, + 0x69, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x73, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x73, 0x6f, + 0x61, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x69, 0x74, 0x73, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x74, 0x64, 0x70, 0x66, 0x72, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x66, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, + 0x6f, 0x72, 0x6b, 0x2d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6d, 0x6c, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x67, 0x6d, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x70, + 0x78, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x67, 0x70, 0x78, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x67, 0x78, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x67, 0x78, 0x66, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x68, 0x32, 0x32, 0x34, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65, + 0x6c, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x74, 0x74, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x73, 0x74, 0x75, 0x64, 0x69, + 0x6f, 0x09, 0x09, 0x09, 0x09, 0x73, 0x74, 0x6b, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, + 0x62, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x62, 0x65, + 0x2d, 0x70, 0x6b, 0x67, 0x2d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x62, 0x65, 0x2d, 0x70, 0x70, 0x2d, + 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x67, 0x65, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x69, 0x6d, 0x2d, 0x69, 0x73, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x2e, 0x63, 0x6d, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x2e, 0x6f, 0x62, 0x6a, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x6e, 0x64, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, + 0x6b, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x69, + 0x6e, 0x6b, 0x20, 0x69, 0x6e, 0x6b, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, + 0x6f, 0x74, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x70, 0x66, 0x69, 0x78, 0x09, 0x09, 0x09, + 0x09, 0x69, 0x70, 0x66, 0x69, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x70, 0x70, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x69, 0x73, 0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61, + 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x09, 0x09, 0x09, 0x6a, + 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x2d, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x09, 0x09, 0x73, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x2d, + 0x76, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, + 0x09, 0x09, 0x6a, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x09, 0x09, 0x09, + 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x6d, 0x6c, + 0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x73, 0x6f, + 0x6e, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6b, 0x70, 0x6d, 0x6c, 0x2d, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6b, 0x70, 0x6d, 0x6c, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6c, 0x6f, 0x73, 0x74, 0x2b, + 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x63, 0x2d, 0x62, 0x69, 0x6e, 0x68, 0x65, + 0x78, 0x34, 0x30, 0x09, 0x09, 0x09, 0x68, 0x71, 0x78, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, + 0x63, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x70, 0x72, 0x6f, + 0x09, 0x09, 0x09, 0x63, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x63, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x69, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x64, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x61, 0x64, 0x73, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x72, 0x63, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x78, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x6d, 0x72, 0x63, 0x78, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74, + 0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x09, 0x09, 0x09, 0x09, + 0x6d, 0x61, 0x20, 0x6e, 0x62, 0x20, 0x6d, 0x62, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x6d, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, + 0x6d, 0x6c, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, + 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x61, + 0x74, 0x68, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x2d, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x64, 0x65, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, + 0x73, 0x2d, 0x6d, 0x73, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x6d, 0x73, 0x6b, 0x2d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, + 0x6d, 0x73, 0x2d, 0x72, 0x65, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, + 0x6d, 0x73, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x75, 0x73, 0x65, 0x72, + 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6d, 0x62, 0x6f, 0x78, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x62, 0x6f, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x73, + 0x63, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x6c, + 0x69, 0x6e, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b, + 0x34, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x65, 0x74, 0x61, + 0x34, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x6d, 0x65, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x69, 0x6b, + 0x65, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x64, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x64, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, + 0x73, 0x73, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, + 0x73, 0x73, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x73, 0x73, 0x6b, 0x65, 0x79, 0x2d, 0x64, + 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x73, 0x73, 0x6b, 0x65, + 0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70, + 0x32, 0x31, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x32, 0x31, 0x20, 0x6d, 0x70, + 0x32, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x6d, 0x70, 0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x70, 0x34, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x34, 0x2d, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70, + 0x65, 0x67, 0x34, 0x2d, 0x69, 0x6f, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70, + 0x65, 0x67, 0x34, 0x2d, 0x69, 0x6f, 0x64, 0x2d, 0x78, 0x6d, 0x74, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6d, 0x73, 0x63, 0x2d, 0x69, 0x76, 0x72, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x73, 0x63, 0x2d, 0x6d, 0x69, 0x78, 0x65, + 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x09, 0x09, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x20, 0x64, 0x6f, 0x74, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6d, 0x78, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x78, 0x66, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6e, 0x61, 0x73, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6e, 0x65, 0x77, 0x73, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x6e, 0x65, 0x77, 0x73, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6e, 0x73, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x09, 0x62, 0x69, 0x6e, 0x20, + 0x64, 0x6d, 0x73, 0x20, 0x6c, 0x72, 0x66, 0x20, 0x6d, 0x61, 0x72, 0x20, + 0x73, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x74, 0x20, 0x64, 0x69, 0x73, 0x74, + 0x7a, 0x20, 0x70, 0x6b, 0x67, 0x20, 0x62, 0x70, 0x6b, 0x20, 0x64, 0x75, + 0x6d, 0x70, 0x20, 0x65, 0x6c, 0x63, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6f, 0x64, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x64, + 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6f, 0x65, 0x62, 0x70, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6f, 0x70, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x67, + 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x6f, 0x6d, 0x64, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x6f, 0x6d, 0x64, 0x6f, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x6e, 0x65, + 0x6e, 0x6f, 0x74, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x6e, 0x65, 0x74, + 0x6f, 0x63, 0x20, 0x6f, 0x6e, 0x65, 0x74, 0x6f, 0x63, 0x32, 0x20, 0x6f, + 0x6e, 0x65, 0x74, 0x6d, 0x70, 0x20, 0x6f, 0x6e, 0x65, 0x70, 0x6b, 0x67, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6f, 0x78, 0x70, 0x73, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x78, 0x70, + 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, + 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2d, 0x6f, 0x70, 0x73, 0x2d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x78, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x67, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x09, 0x09, 0x09, 0x70, 0x67, 0x70, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x70, 0x67, 0x70, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x67, 0x70, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x09, 0x09, 0x09, 0x61, 0x73, 0x63, 0x20, 0x73, 0x69, 0x67, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x69, 0x63, 0x73, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x09, 0x09, 0x09, + 0x09, 0x70, 0x72, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x69, 0x64, 0x66, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x69, 0x64, 0x66, 0x2d, 0x64, + 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73, + 0x31, 0x30, 0x09, 0x09, 0x09, 0x09, 0x70, 0x31, 0x30, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, + 0x63, 0x73, 0x37, 0x2d, 0x6d, 0x69, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x37, 0x6d, 0x20, 0x70, 0x37, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73, + 0x37, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x09, + 0x09, 0x09, 0x70, 0x37, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73, 0x38, 0x09, + 0x09, 0x09, 0x09, 0x70, 0x38, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d, 0x61, + 0x74, 0x74, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09, 0x09, 0x09, 0x61, + 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09, + 0x09, 0x09, 0x09, 0x63, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d, + 0x63, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x63, 0x72, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x6b, 0x69, 0x78, 0x2d, 0x70, 0x6b, 0x69, 0x70, 0x61, 0x74, 0x68, 0x09, + 0x09, 0x09, 0x70, 0x6b, 0x69, 0x70, 0x61, 0x74, 0x68, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, + 0x69, 0x78, 0x63, 0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x70, 0x6b, 0x69, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x70, 0x6c, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x6c, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6f, 0x63, 0x2d, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, + 0x09, 0x61, 0x69, 0x20, 0x65, 0x70, 0x73, 0x20, 0x70, 0x73, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x61, 0x6c, 0x76, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x6e, 0x64, 0x2e, 0x74, 0x69, 0x74, 0x72, 0x61, 0x78, 0x2d, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x63, 0x77, 0x77, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x77, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, + 0x73, 0x2e, 0x6e, 0x70, 0x72, 0x65, 0x6e, 0x64, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x72, 0x73, 0x2e, 0x70, 0x6c, 0x75, 0x63, 0x6b, 0x65, 0x72, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x72, 0x64, 0x66, 0x2d, 0x78, 0x6d, 0x6c, + 0x2d, 0x63, 0x72, 0x79, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x73, + 0x2e, 0x78, 0x73, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x73, 0x6b, + 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x70, 0x73, 0x6b, + 0x63, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x71, 0x73, 0x69, 0x67, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x72, 0x64, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72, + 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72, 0x69, 0x66, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, + 0x6c, 0x61, 0x78, 0x2d, 0x6e, 0x67, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x2d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x09, 0x09, 0x72, + 0x6e, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2b, + 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2d, + 0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x72, 0x6c, + 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x69, 0x73, 0x63, 0x6f, 0x73, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x72, 0x6c, 0x6d, 0x69, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x6c, + 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69, + 0x2d, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x62, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x09, 0x09, 0x09, 0x67, 0x62, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69, + 0x2d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09, + 0x6d, 0x66, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69, 0x2d, 0x72, 0x6f, 0x61, + 0x09, 0x09, 0x09, 0x09, 0x72, 0x6f, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, + 0x6b, 0x69, 0x2d, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x73, + 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72, 0x73, 0x64, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x72, 0x73, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x72, 0x73, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x72, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x73, 0x61, 0x6d, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x61, 0x6d, 0x6c, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x73, 0x62, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x73, 0x62, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x63, + 0x76, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09, + 0x73, 0x63, 0x71, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x63, 0x76, 0x2d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x09, 0x09, 0x09, 0x73, + 0x63, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x76, 0x70, 0x2d, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09, 0x73, 0x70, 0x71, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x76, 0x70, 0x2d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x09, 0x09, 0x09, 0x73, 0x70, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x73, 0x64, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x64, 0x70, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x09, 0x09, 0x73, 0x65, 0x74, 0x70, 0x61, 0x79, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, + 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x73, 0x65, 0x74, + 0x72, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x67, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x73, 0x67, 0x6d, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x68, 0x66, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x66, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x73, 0x69, 0x65, 0x76, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x73, 0x6d, 0x69, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6d, 0x69, 0x6c, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6d, 0x69, 0x20, 0x73, 0x6d, + 0x69, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, 0x61, 0x70, 0x2b, 0x66, 0x61, + 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x65, 0x74, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x73, 0x6f, 0x61, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x61, + 0x72, 0x71, 0x6c, 0x2d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x09, 0x09, 0x09, + 0x72, 0x71, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x61, 0x72, 0x71, 0x6c, 0x2d, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x73, 0x72, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x69, 0x72, 0x69, 0x74, + 0x73, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x73, 0x72, 0x67, 0x73, 0x09, 0x09, 0x09, 0x09, 0x67, 0x72, 0x61, 0x6d, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x73, 0x72, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x67, 0x72, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x72, 0x75, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x72, 0x75, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x73, + 0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x73, + 0x64, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x73, 0x73, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x73, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, + 0x6d, 0x70, 0x2d, 0x61, 0x70, 0x65, 0x78, 0x2d, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x61, 0x70, + 0x65, 0x78, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, + 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2d, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, + 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2d, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x61, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, + 0x61, 0x6d, 0x70, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, + 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x65, 0x69, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x74, 0x65, 0x69, 0x20, 0x74, 0x65, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x75, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x68, 0x72, 0x61, 0x75, 0x64, 0x2b, + 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x74, 0x66, 0x69, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x2d, 0x64, + 0x61, 0x74, 0x61, 0x09, 0x09, 0x09, 0x74, 0x73, 0x64, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x74, 0x76, 0x65, 0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x63, 0x61, 0x72, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x65, 0x6d, 0x6d, 0x69, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x69, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, + 0x70, 0x70, 0x2e, 0x62, 0x73, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x70, 0x69, 0x63, 0x2d, + 0x62, 0x77, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x09, 0x09, 0x70, 0x6c, + 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x70, + 0x69, 0x63, 0x2d, 0x62, 0x77, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x09, + 0x09, 0x70, 0x73, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, + 0x70, 0x2e, 0x70, 0x69, 0x63, 0x2d, 0x62, 0x77, 0x2d, 0x76, 0x61, 0x72, + 0x09, 0x09, 0x09, 0x70, 0x76, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x73, 0x6d, 0x73, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x32, 0x2e, 0x62, 0x63, + 0x6d, 0x63, 0x73, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x32, 0x2e, + 0x73, 0x6d, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, + 0x32, 0x2e, 0x74, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09, 0x74, 0x63, 0x61, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x6d, 0x2e, 0x70, 0x6f, 0x73, + 0x74, 0x2d, 0x69, 0x74, 0x2d, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x09, 0x09, + 0x70, 0x77, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x63, 0x63, 0x70, + 0x61, 0x63, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79, 0x2e, 0x61, 0x73, + 0x6f, 0x09, 0x09, 0x61, 0x73, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, + 0x63, 0x63, 0x70, 0x61, 0x63, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79, + 0x2e, 0x69, 0x6d, 0x70, 0x09, 0x09, 0x69, 0x6d, 0x70, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x61, 0x63, 0x75, 0x63, 0x6f, 0x62, 0x6f, 0x6c, 0x09, 0x09, + 0x09, 0x61, 0x63, 0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x63, 0x75, + 0x63, 0x6f, 0x72, 0x70, 0x09, 0x09, 0x09, 0x09, 0x61, 0x74, 0x63, 0x20, + 0x61, 0x63, 0x75, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64, + 0x6f, 0x62, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x2d, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x2b, 0x7a, 0x69, 0x70, 0x09, 0x61, 0x69, 0x72, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x73, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x2e, 0x66, 0x63, 0x64, + 0x74, 0x09, 0x09, 0x66, 0x63, 0x64, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x66, 0x78, 0x70, 0x09, 0x09, 0x09, + 0x66, 0x78, 0x70, 0x20, 0x66, 0x78, 0x70, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x78, 0x64, + 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x64, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x78, 0x66, + 0x64, 0x66, 0x09, 0x09, 0x09, 0x78, 0x66, 0x64, 0x66, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x69, + 0x6d, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x68, 0x2d, + 0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x61, 0x68, 0x65, 0x61, 0x64, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x09, + 0x09, 0x09, 0x61, 0x68, 0x65, 0x61, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x61, 0x69, 0x72, 0x7a, 0x69, 0x70, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x61, 0x7a, 0x66, 0x09, 0x09, 0x61, + 0x7a, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x69, 0x72, 0x7a, 0x69, + 0x70, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, + 0x2e, 0x61, 0x7a, 0x73, 0x09, 0x09, 0x61, 0x7a, 0x73, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x2e, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x09, 0x09, 0x09, 0x61, 0x7a, 0x77, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x6e, + 0x61, 0x6d, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x09, 0x09, 0x61, + 0x63, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6d, 0x69, 0x67, 0x61, + 0x2e, 0x61, 0x6d, 0x69, 0x09, 0x09, 0x09, 0x61, 0x6d, 0x69, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6d, 0x75, 0x6e, 0x64, 0x73, 0x65, + 0x6e, 0x2e, 0x6d, 0x61, 0x7a, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2e, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x09, 0x09, 0x61, 0x70, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x61, 0x6e, 0x73, 0x65, 0x72, 0x2d, 0x77, 0x65, 0x62, 0x2d, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2d, 0x69, 0x73, + 0x73, 0x75, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x09, 0x63, 0x69, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, + 0x6e, 0x73, 0x65, 0x72, 0x2d, 0x77, 0x65, 0x62, 0x2d, 0x66, 0x75, 0x6e, + 0x64, 0x73, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2d, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x66, + 0x74, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6e, 0x74, 0x69, 0x78, + 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x09, 0x09, 0x61, 0x74, 0x78, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6c, 0x6c, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x70, + 0x6b, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65, + 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x6d, + 0x33, 0x75, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x72, + 0x61, 0x73, 0x74, 0x72, 0x61, 0x2e, 0x73, 0x77, 0x69, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x61, 0x72, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x2e, 0x73, 0x77, 0x69, 0x09, 0x09, 0x73, 0x77, + 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x73, 0x74, 0x72, 0x61, 0x65, + 0x61, 0x2d, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2e, 0x69, + 0x6f, 0x74, 0x61, 0x09, 0x09, 0x69, 0x6f, 0x74, 0x61, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x09, 0x09, 0x09, 0x61, 0x65, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x76, 0x69, 0x73, 0x74, + 0x61, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x62, + 0x6c, 0x75, 0x65, 0x69, 0x63, 0x65, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x61, 0x73, 0x73, 0x09, 0x09, 0x6d, 0x70, 0x6d, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, + 0x68, 0x2e, 0x65, 0x70, 0x2e, 0x6f, 0x6f, 0x62, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x62, 0x6d, 0x69, 0x09, 0x09, 0x09, 0x09, 0x62, 0x6d, 0x69, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x09, 0x09, 0x09, 0x72, 0x65, + 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x62, 0x2d, + 0x6a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x70, 0x64, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, + 0x2d, 0x6c, 0x69, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6f, 0x2e, 0x74, 0x68, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x63, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x63, 0x6f, + 0x6e, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x68, 0x65, 0x6d, 0x64, + 0x72, 0x61, 0x77, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x63, 0x64, + 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x68, 0x69, 0x70, + 0x6e, 0x75, 0x74, 0x73, 0x2e, 0x6b, 0x61, 0x72, 0x61, 0x6f, 0x6b, 0x65, + 0x2d, 0x6d, 0x6d, 0x64, 0x09, 0x09, 0x6d, 0x6d, 0x64, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x63, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x6c, 0x6c, 0x61, + 0x09, 0x09, 0x09, 0x63, 0x64, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x63, 0x69, 0x72, 0x70, 0x61, 0x63, 0x6b, 0x2e, 0x69, 0x73, 0x64, + 0x6e, 0x2d, 0x65, 0x78, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c, + 0x61, 0x79, 0x6d, 0x6f, 0x72, 0x65, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x61, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x6f, 0x61, 0x6e, 0x74, 0x6f, + 0x2e, 0x72, 0x70, 0x39, 0x09, 0x09, 0x09, 0x72, 0x70, 0x39, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x6f, 0x6e, 0x6b, 0x2e, 0x63, 0x34, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x09, 0x09, 0x09, 0x63, 0x34, 0x67, 0x20, 0x63, + 0x34, 0x64, 0x20, 0x63, 0x34, 0x66, 0x20, 0x63, 0x34, 0x70, 0x20, 0x63, + 0x34, 0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x75, 0x65, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x61, 0x72, 0x74, 0x6f, 0x6d, 0x6f, + 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x09, + 0x09, 0x63, 0x31, 0x31, 0x61, 0x6d, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x6c, 0x75, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x61, + 0x72, 0x74, 0x6f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2d, 0x70, 0x6b, 0x67, 0x09, 0x63, 0x31, 0x31, + 0x61, 0x6d, 0x7a, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x6a, 0x73, 0x6f, + 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x72, 0x63, 0x65, 0x2d, 0x62, 0x61, 0x74, 0x74, 0x65, 0x6c, 0x6c, + 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x09, 0x09, 0x09, 0x63, 0x73, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x2e, + 0x63, 0x6d, 0x73, 0x67, 0x09, 0x09, 0x09, 0x63, 0x64, 0x62, 0x63, 0x6d, + 0x73, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x63, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x6b, + 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e, + 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x6b, 0x65, 0x79, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x09, 0x09, 0x63, 0x6c, 0x6b, 0x6b, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x61, 0x6c, 0x65, 0x74, 0x74, 0x65, + 0x09, 0x09, 0x63, 0x6c, 0x6b, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, + 0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x63, + 0x6c, 0x6b, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, + 0x6b, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x77, 0x6f, + 0x72, 0x64, 0x62, 0x61, 0x6e, 0x6b, 0x09, 0x09, 0x63, 0x6c, 0x6b, 0x77, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x77, 0x62, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x77, 0x62, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x74, 0x63, 0x2d, 0x70, 0x6f, 0x73, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x70, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x74, + 0x63, 0x74, 0x2e, 0x77, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x70, 0x64, 0x66, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, + 0x70, 0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x70, 0x70, 0x64, 0x09, + 0x09, 0x09, 0x70, 0x70, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x75, 0x70, 0x73, 0x2d, 0x72, 0x61, 0x73, 0x74, 0x65, 0x72, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x72, + 0x61, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x63, + 0x61, 0x72, 0x09, 0x09, 0x09, 0x63, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x70, 0x63, 0x75, 0x72, 0x6c, 0x09, + 0x09, 0x09, 0x70, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x63, 0x79, 0x62, 0x61, 0x6e, 0x6b, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x61, 0x72, 0x74, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x72, + 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x64, 0x7a, 0x09, 0x09, 0x09, + 0x72, 0x64, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x09, 0x75, 0x76, 0x66, 0x20, + 0x75, 0x76, 0x76, 0x66, 0x20, 0x75, 0x76, 0x64, 0x20, 0x75, 0x76, 0x76, + 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x74, + 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x75, 0x76, + 0x74, 0x20, 0x75, 0x76, 0x76, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x65, 0x63, 0x65, 0x2e, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x09, 0x09, 0x75, 0x76, 0x78, 0x20, 0x75, 0x76, 0x76, + 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x7a, + 0x69, 0x70, 0x09, 0x09, 0x09, 0x75, 0x76, 0x7a, 0x20, 0x75, 0x76, 0x76, + 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x6e, 0x6f, 0x76, 0x6f, + 0x2e, 0x66, 0x63, 0x73, 0x65, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2d, + 0x6c, 0x69, 0x6e, 0x6b, 0x09, 0x09, 0x66, 0x65, 0x5f, 0x6c, 0x61, 0x75, + 0x6e, 0x63, 0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69, + 0x72, 0x2d, 0x62, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2d, 0x64, + 0x6c, 0x2d, 0x6e, 0x6f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x64, 0x6e, 0x61, 0x09, 0x09, 0x09, 0x09, 0x64, 0x6e, + 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, + 0x6d, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x6d, 0x6c, 0x70, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6f, + 0x62, 0x69, 0x6c, 0x65, 0x2e, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x2e, 0x32, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x70, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x09, 0x09, 0x09, 0x09, 0x64, 0x70, 0x67, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x09, 0x09, 0x09, 0x64, 0x66, 0x61, 0x63, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x64, 0x73, 0x2d, 0x6b, 0x65, 0x79, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x09, 0x09, 0x09, 0x6b, 0x70, 0x78, 0x78, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x61, 0x69, 0x74, 0x09, 0x09, 0x09, + 0x09, 0x61, 0x69, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x76, 0x62, 0x2e, 0x64, 0x76, 0x62, 0x6a, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x65, 0x73, 0x67, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x64, 0x63, 0x64, 0x66, 0x74, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, + 0x64, 0x63, 0x65, 0x73, 0x67, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, + 0x64, 0x63, 0x65, 0x73, 0x67, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x32, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, + 0x70, 0x64, 0x63, 0x65, 0x73, 0x67, 0x70, 0x64, 0x64, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x64, 0x63, + 0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x2e, 0x61, + 0x6c, 0x66, 0x65, 0x63, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x74, 0x76, + 0x2e, 0x61, 0x6c, 0x66, 0x65, 0x63, 0x2d, 0x65, 0x6e, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x6f, 0x6f, + 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, + 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69, 0x61, 0x2d, 0x6d, + 0x73, 0x67, 0x6c, 0x69, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x2d, 0x69, 0x61, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69, + 0x61, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, + 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69, 0x6e, 0x69, 0x74, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x76, 0x62, 0x2e, 0x70, 0x66, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x76, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x09, 0x09, + 0x09, 0x73, 0x76, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x78, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x79, 0x6e, 0x61, 0x67, + 0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x67, 0x65, 0x6f, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x61, 0x73, 0x79, 0x6b, 0x61, 0x72, 0x61, + 0x6f, 0x6b, 0x65, 0x2e, 0x63, 0x64, 0x67, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, + 0x64, 0x69, 0x73, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x09, 0x09, 0x09, 0x6d, 0x61, 0x67, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, + 0x66, 0x69, 0x6c, 0x65, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x73, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x6d, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x6e, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x09, 0x09, 0x09, 0x09, + 0x6e, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e, + 0x2e, 0x65, 0x73, 0x66, 0x09, 0x09, 0x09, 0x65, 0x73, 0x66, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x6d, 0x73, 0x66, + 0x09, 0x09, 0x09, 0x6d, 0x73, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, + 0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x61, 0x6e, + 0x69, 0x6d, 0x65, 0x09, 0x09, 0x71, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x73, 0x61, 0x6c, 0x74, 0x09, + 0x09, 0x09, 0x73, 0x6c, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70, + 0x73, 0x6f, 0x6e, 0x2e, 0x73, 0x73, 0x66, 0x09, 0x09, 0x09, 0x73, 0x73, + 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x72, 0x69, 0x63, + 0x73, 0x73, 0x6f, 0x6e, 0x2e, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x63, 0x61, + 0x6c, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x73, 0x7a, 0x69, 0x67, + 0x6e, 0x6f, 0x33, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x65, 0x73, + 0x33, 0x20, 0x65, 0x74, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x65, 0x74, 0x73, 0x69, 0x2e, 0x61, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, + 0x63, 0x75, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, + 0x74, 0x76, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, + 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x61, + 0x64, 0x2d, 0x62, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, + 0x73, 0x61, 0x64, 0x2d, 0x63, 0x6f, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, + 0x70, 0x74, 0x76, 0x73, 0x61, 0x64, 0x2d, 0x6e, 0x70, 0x76, 0x72, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, + 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x79, + 0x6e, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x75, 0x65, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x6d, + 0x63, 0x69, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x6f, 0x76, 0x65, 0x72, 0x6c, + 0x6f, 0x61, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x73, 0x63, 0x69, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, + 0x2e, 0x73, 0x69, 0x6d, 0x73, 0x65, 0x72, 0x76, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, + 0x2e, 0x74, 0x73, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x74, 0x73, 0x6c, 0x2e, + 0x64, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x75, + 0x64, 0x6f, 0x72, 0x61, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x65, 0x7a, 0x70, 0x69, 0x78, 0x2d, 0x61, 0x6c, 0x62, 0x75, + 0x6d, 0x09, 0x09, 0x09, 0x65, 0x7a, 0x32, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x65, 0x7a, 0x70, 0x69, 0x78, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x09, 0x09, 0x09, 0x65, 0x7a, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x66, 0x2d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x64, + 0x66, 0x09, 0x09, 0x09, 0x09, 0x66, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x66, 0x64, 0x73, 0x6e, 0x2e, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x09, + 0x09, 0x09, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x66, 0x64, 0x73, 0x6e, 0x2e, 0x73, 0x65, 0x65, 0x64, 0x09, 0x09, 0x09, + 0x73, 0x65, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x73, + 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x66, 0x73, 0x6e, + 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x69, 0x6e, 0x74, + 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x6f, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x74, 0x09, 0x09, 0x09, 0x67, 0x70, 0x68, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x75, 0x78, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x63, 0x6c, 0x69, 0x70, 0x09, 0x09, 0x09, 0x66, 0x74, 0x63, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x6f, + 0x6e, 0x74, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x2d, 0x73, 0x66, 0x64, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x09, 0x09, 0x09, 0x66, 0x6d, 0x20, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x20, 0x62, 0x6f, 0x6f, 0x6b, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x72, 0x6f, 0x67, 0x61, 0x6e, 0x73, + 0x2e, 0x66, 0x6e, 0x63, 0x09, 0x09, 0x09, 0x66, 0x6e, 0x63, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x66, 0x72, 0x6f, 0x67, 0x61, 0x6e, 0x73, 0x2e, 0x6c, + 0x74, 0x66, 0x09, 0x09, 0x09, 0x6c, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x66, 0x73, 0x63, 0x2e, 0x77, 0x65, 0x62, 0x6c, 0x61, 0x75, 0x6e, + 0x63, 0x68, 0x09, 0x09, 0x09, 0x66, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61, 0x73, + 0x79, 0x73, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x73, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61, 0x73, + 0x79, 0x73, 0x32, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x32, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61, + 0x73, 0x79, 0x73, 0x33, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x33, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, + 0x61, 0x73, 0x79, 0x73, 0x67, 0x70, 0x09, 0x09, 0x09, 0x66, 0x67, 0x35, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, + 0x2e, 0x6f, 0x61, 0x73, 0x79, 0x73, 0x70, 0x72, 0x73, 0x09, 0x09, 0x62, + 0x68, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, + 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x61, 0x72, 0x74, 0x2d, 0x65, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, + 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x61, 0x72, 0x74, 0x34, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, + 0x6f, 0x78, 0x2e, 0x68, 0x62, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x64, 0x64, + 0x64, 0x09, 0x09, 0x09, 0x64, 0x64, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x64, 0x6f, + 0x63, 0x75, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x09, 0x09, 0x78, 0x64, 0x77, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, + 0x6f, 0x78, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x09, 0x78, 0x62, 0x64, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x74, 0x2d, 0x6d, 0x69, + 0x73, 0x6e, 0x65, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x7a, + 0x7a, 0x79, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x09, 0x09, 0x66, 0x7a, + 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x61, + 0x74, 0x69, 0x78, 0x2e, 0x74, 0x75, 0x78, 0x65, 0x64, 0x6f, 0x09, 0x09, + 0x74, 0x78, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, + 0x6f, 0x63, 0x75, 0x62, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x67, 0x65, 0x6f, 0x67, 0x65, 0x62, 0x72, 0x61, 0x2e, 0x66, + 0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x67, 0x67, 0x62, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x67, 0x65, 0x6f, 0x67, 0x65, 0x62, 0x72, 0x61, 0x2e, 0x74, + 0x6f, 0x6f, 0x6c, 0x09, 0x09, 0x09, 0x67, 0x67, 0x74, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2d, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x09, 0x09, 0x67, 0x65, 0x78, + 0x20, 0x67, 0x72, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6f, + 0x6e, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, 0x09, 0x67, 0x78, 0x74, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6f, 0x70, 0x6c, 0x61, 0x6e, 0x09, + 0x09, 0x09, 0x09, 0x67, 0x32, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, + 0x65, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x09, 0x09, 0x09, 0x67, 0x33, + 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, + 0x6d, 0x67, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2d, 0x6d, 0x67, 0x74, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6d, 0x78, 0x09, 0x09, + 0x09, 0x09, 0x67, 0x6d, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x61, 0x72, 0x74, 0x68, 0x2e, 0x6b, + 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6b, 0x6d, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x65, + 0x61, 0x72, 0x74, 0x68, 0x2e, 0x6b, 0x6d, 0x7a, 0x09, 0x09, 0x6b, 0x6d, + 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x61, 0x66, 0x65, 0x71, + 0x09, 0x09, 0x09, 0x09, 0x67, 0x71, 0x66, 0x20, 0x67, 0x71, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x6d, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x09, 0x09, 0x09, 0x67, 0x61, + 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x2d, 0x68, 0x65, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x67, 0x68, 0x66, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2d, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x09, 0x09, 0x67, 0x69, 0x6d, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x67, 0x72, 0x76, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x09, 0x09, + 0x67, 0x74, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x2d, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x74, 0x70, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x76, 0x63, 0x61, + 0x72, 0x64, 0x09, 0x09, 0x09, 0x76, 0x63, 0x67, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x68, 0x61, 0x6c, 0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x61, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x68, 0x61, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, + 0x61, 0x6e, 0x64, 0x68, 0x65, 0x6c, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d, + 0x6c, 0x09, 0x7a, 0x6d, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x62, + 0x63, 0x69, 0x09, 0x09, 0x09, 0x09, 0x68, 0x62, 0x63, 0x69, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x63, 0x6c, 0x2d, 0x62, 0x69, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, + 0x68, 0x65, 0x2e, 0x6c, 0x65, 0x73, 0x73, 0x6f, 0x6e, 0x2d, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x09, 0x09, 0x6c, 0x65, 0x73, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x68, 0x70, 0x2d, 0x68, 0x70, 0x67, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x68, 0x70, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70, + 0x2d, 0x68, 0x70, 0x69, 0x64, 0x09, 0x09, 0x09, 0x09, 0x68, 0x70, 0x69, + 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70, 0x2d, 0x68, 0x70, 0x73, + 0x09, 0x09, 0x09, 0x09, 0x68, 0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x68, 0x70, 0x2d, 0x6a, 0x6c, 0x79, 0x74, 0x09, 0x09, 0x09, 0x09, 0x6a, + 0x6c, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70, 0x2d, 0x70, 0x63, + 0x6c, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x68, 0x70, 0x2d, 0x70, 0x63, 0x6c, 0x78, 0x6c, 0x09, 0x09, 0x09, + 0x70, 0x63, 0x6c, 0x78, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x68, 0x74, 0x74, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x68, 0x79, 0x64, 0x72, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x78, + 0x2e, 0x73, 0x6f, 0x66, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x73, + 0x66, 0x64, 0x2d, 0x68, 0x64, 0x73, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x68, 0x7a, 0x6e, 0x2d, 0x33, 0x64, 0x2d, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x61, 0x66, 0x70, 0x6c, 0x69, 0x6e, + 0x65, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x69, 0x62, 0x6d, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e, + 0x69, 0x63, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x70, 0x61, 0x79, + 0x09, 0x09, 0x09, 0x6d, 0x70, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, + 0x62, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09, + 0x61, 0x66, 0x70, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x61, 0x66, 0x70, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x33, 0x38, 0x32, 0x30, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2d, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x09, 0x09, + 0x69, 0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x62, 0x6d, 0x2e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x09, 0x09, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x63, 0x63, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x09, + 0x09, 0x09, 0x69, 0x63, 0x63, 0x20, 0x69, 0x63, 0x6d, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x69, 0x67, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x09, 0x09, + 0x09, 0x69, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6d, 0x6d, + 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x76, 0x70, + 0x09, 0x09, 0x09, 0x69, 0x76, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, + 0x6d, 0x6d, 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, + 0x76, 0x75, 0x09, 0x09, 0x09, 0x69, 0x76, 0x75, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x72, 0x6d, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x69, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x69, 0x6e, 0x6e, 0x6f, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x77, 0x61, 0x6d, + 0x70, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x73, 0x6f, 0x72, + 0x73, 0x2e, 0x69, 0x67, 0x6d, 0x09, 0x09, 0x09, 0x69, 0x67, 0x6d, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x6e, 0x65, 0x74, 0x09, 0x09, 0x78, 0x70, + 0x77, 0x20, 0x78, 0x70, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x67, 0x65, 0x6f, 0x09, 0x09, 0x09, 0x69, 0x32, 0x67, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x62, 0x6f, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x6e, 0x63, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x75, 0x2e, 0x71, 0x62, 0x6f, + 0x09, 0x09, 0x09, 0x71, 0x62, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, + 0x6e, 0x74, 0x75, 0x2e, 0x71, 0x66, 0x78, 0x09, 0x09, 0x09, 0x71, 0x66, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, + 0x2e, 0x67, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x69, + 0x74, 0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, + 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6e, 0x65, 0x77, 0x73, 0x69, 0x74, + 0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6e, 0x65, 0x77, + 0x73, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, + 0x67, 0x32, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x74, + 0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x70, 0x6c, 0x61, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x69, 0x74, 0x65, 0x6d, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x75, 0x6e, 0x70, 0x6c, + 0x75, 0x67, 0x67, 0x65, 0x64, 0x2e, 0x72, 0x63, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x09, 0x09, 0x72, 0x63, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x72, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x69, 0x72, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x73, 0x2d, 0x78, 0x70, 0x72, 0x09, 0x09, + 0x09, 0x09, 0x78, 0x70, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x73, + 0x61, 0x63, 0x2e, 0x66, 0x63, 0x73, 0x09, 0x09, 0x09, 0x66, 0x63, 0x73, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x6d, 0x09, 0x09, 0x09, 0x09, + 0x6a, 0x61, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, + 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e, + 0x6e, 0x65, 0x74, 0x2d, 0x6a, 0x70, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75, + 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, + 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x61, + 0x6b, 0x65, 0x75, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, + 0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x73, 0x65, 0x74, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75, 0x70, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e, + 0x65, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, + 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x61, 0x6b, 0x65, + 0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x63, 0x70, 0x2e, 0x6a, + 0x61, 0x76, 0x61, 0x6d, 0x65, 0x2e, 0x6d, 0x69, 0x64, 0x6c, 0x65, 0x74, + 0x2d, 0x72, 0x6d, 0x73, 0x09, 0x09, 0x72, 0x6d, 0x73, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6a, 0x69, 0x73, 0x70, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x69, + 0x73, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x6f, 0x6f, 0x73, 0x74, + 0x2e, 0x6a, 0x6f, 0x64, 0x61, 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x09, 0x09, 0x6a, 0x6f, 0x64, 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6b, 0x61, 0x68, 0x6f, 0x6f, 0x74, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x6b, + 0x74, 0x7a, 0x20, 0x6b, 0x74, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, + 0x64, 0x65, 0x2e, 0x6b, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x09, 0x09, 0x09, + 0x6b, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, + 0x64, 0x65, 0x2e, 0x6b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x09, + 0x63, 0x68, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, + 0x2e, 0x6b, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x09, 0x09, 0x09, + 0x6b, 0x66, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, + 0x6b, 0x69, 0x76, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x77, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x6f, 0x6e, 0x74, + 0x6f, 0x75, 0x72, 0x09, 0x09, 0x09, 0x6b, 0x6f, 0x6e, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x09, 0x09, 0x09, 0x6b, 0x70, 0x72, 0x20, 0x6b, + 0x70, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, + 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x09, 0x09, 0x09, 0x6b, 0x73, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x77, 0x6f, + 0x72, 0x64, 0x09, 0x09, 0x09, 0x6b, 0x77, 0x64, 0x20, 0x6b, 0x77, 0x74, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x61, + 0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x68, 0x74, 0x6b, 0x65, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6b, 0x69, 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x6b, 0x69, 0x61, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6b, 0x69, 0x6e, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6b, + 0x6e, 0x65, 0x20, 0x6b, 0x6e, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, + 0x6f, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6b, 0x70, 0x20, 0x73, + 0x6b, 0x64, 0x20, 0x73, 0x6b, 0x74, 0x20, 0x73, 0x6b, 0x6d, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6b, 0x6f, 0x64, 0x61, 0x6b, 0x2d, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x73, 0x73, 0x65, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x61, 0x73, 0x2e, 0x6c, 0x61, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6c, 0x61, 0x73, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x69, 0x62, 0x65, + 0x72, 0x74, 0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6c, 0x61, 0x6d, + 0x61, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x6c, 0x69, + 0x66, 0x65, 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x64, + 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x09, 0x6c, 0x62, 0x64, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6c, 0x6c, 0x61, 0x6d, 0x61, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x73, 0x2e, 0x6c, 0x69, 0x66, 0x65, 0x2d, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x6c, 0x62, 0x65, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x31, 0x2d, 0x32, + 0x2d, 0x33, 0x09, 0x09, 0x09, 0x31, 0x32, 0x33, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x61, 0x63, 0x68, 0x09, 0x09, 0x09, 0x61, 0x70, 0x72, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x66, 0x72, 0x65, 0x65, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x09, 0x09, 0x09, 0x70, 0x72, 0x65, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x6e, 0x6f, + 0x74, 0x65, 0x73, 0x09, 0x09, 0x09, 0x6e, 0x73, 0x66, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x09, 0x09, 0x09, 0x6f, 0x72, 0x67, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x73, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x63, 0x61, 0x6d, 0x09, 0x09, 0x09, 0x73, 0x63, + 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, + 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x09, 0x09, 0x09, 0x6c, 0x77, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x61, 0x63, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2e, 0x70, 0x6f, 0x72, 0x74, 0x70, 0x6b, 0x67, 0x09, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x70, 0x6b, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x61, 0x72, 0x6c, 0x69, 0x6e, + 0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x6d, 0x64, + 0x63, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x63, 0x64, 0x09, 0x09, + 0x09, 0x09, 0x6d, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65, + 0x64, 0x63, 0x61, 0x6c, 0x63, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x09, + 0x6d, 0x63, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x63, 0x64, 0x6b, + 0x65, 0x79, 0x09, 0x09, 0x63, 0x64, 0x6b, 0x65, 0x79, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, 0x6e, + 0x2d, 0x73, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x68, 0x6f, 0x74, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x66, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x77, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x66, 0x6d, 0x70, 0x09, + 0x09, 0x09, 0x09, 0x6d, 0x66, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x66, 0x78, 0x2e, 0x66, 0x6c, + 0x6f, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x66, 0x78, 0x2e, 0x69, + 0x67, 0x78, 0x09, 0x09, 0x09, 0x69, 0x67, 0x78, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6d, 0x69, 0x66, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x69, 0x66, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x6f, + 0x66, 0x74, 0x2d, 0x68, 0x70, 0x33, 0x30, 0x30, 0x30, 0x2d, 0x73, 0x61, + 0x76, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x74, + 0x73, 0x75, 0x62, 0x69, 0x73, 0x68, 0x69, 0x2e, 0x6d, 0x69, 0x73, 0x74, + 0x79, 0x2d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x77, 0x65, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, + 0x69, 0x75, 0x73, 0x2e, 0x64, 0x61, 0x66, 0x09, 0x09, 0x09, 0x64, 0x61, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x09, 0x09, 0x09, 0x64, 0x69, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x6d, 0x62, + 0x6b, 0x09, 0x09, 0x09, 0x6d, 0x62, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x6d, 0x71, 0x79, 0x09, 0x09, + 0x09, 0x6d, 0x71, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, + 0x69, 0x75, 0x73, 0x2e, 0x6d, 0x73, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x73, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, + 0x2e, 0x70, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x70, 0x6c, 0x63, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x74, 0x78, + 0x66, 0x09, 0x09, 0x09, 0x74, 0x78, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6d, 0x6f, 0x70, 0x68, 0x75, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x6d, 0x70, 0x6e, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x70, 0x68, 0x75, 0x6e, 0x2e, 0x63, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x09, 0x09, + 0x6d, 0x70, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, + 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, + 0x75, 0x69, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x69, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, + 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, + 0x66, 0x69, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, + 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, + 0x75, 0x69, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x74, 0x61, 0x70, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, + 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, + 0x6b, 0x6d, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, + 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, + 0x75, 0x69, 0x74, 0x65, 0x2e, 0x74, 0x74, 0x63, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x77, 0x65, + 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, + 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x69, 0x70, 0x72, 0x6d, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x2e, 0x78, 0x75, + 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x75, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x61, 0x72, 0x74, 0x67, 0x61, + 0x6c, 0x72, 0x79, 0x09, 0x09, 0x09, 0x63, 0x69, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x61, 0x73, 0x66, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x63, 0x61, 0x62, 0x2d, 0x63, 0x6f, + 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x09, 0x09, 0x63, 0x61, + 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x69, 0x63, 0x63, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, + 0x78, 0x63, 0x65, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x6c, 0x73, 0x20, 0x78, + 0x6c, 0x6d, 0x20, 0x78, 0x6c, 0x61, 0x20, 0x78, 0x6c, 0x63, 0x20, 0x78, + 0x6c, 0x74, 0x20, 0x78, 0x6c, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x78, 0x6c, 0x61, 0x6d, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c, + 0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x78, 0x6c, 0x73, 0x62, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x2e, + 0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x78, + 0x6c, 0x73, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, + 0x78, 0x63, 0x65, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x78, 0x6c, 0x74, 0x6d, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x65, 0x6f, 0x74, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x68, 0x74, 0x6d, 0x6c, 0x68, 0x65, + 0x6c, 0x70, 0x09, 0x09, 0x09, 0x63, 0x68, 0x6d, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6d, 0x73, 0x2d, 0x69, 0x6d, 0x73, 0x09, 0x09, 0x09, 0x09, 0x69, + 0x6d, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6c, 0x72, + 0x6d, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x78, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x74, 0x68, + 0x6d, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, + 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x2e, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6b, 0x69, 0x2e, 0x73, 0x65, 0x63, + 0x63, 0x61, 0x74, 0x09, 0x09, 0x09, 0x63, 0x61, 0x74, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6b, 0x69, 0x2e, 0x73, 0x74, 0x6c, + 0x09, 0x09, 0x09, 0x73, 0x74, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x09, 0x09, 0x09, + 0x70, 0x70, 0x74, 0x20, 0x70, 0x70, 0x73, 0x20, 0x70, 0x6f, 0x74, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x2e, + 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x70, 0x61, 0x6d, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x70, 0x70, 0x74, + 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x64, + 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x73, 0x6c, 0x64, 0x6d, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x73, + 0x68, 0x6f, 0x77, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x70, 0x73, + 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x6f, + 0x74, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x70, 0x20, 0x6d, 0x70, + 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x74, + 0x6e, 0x65, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, + 0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x63, 0x2d, 0x63, + 0x68, 0x6c, 0x67, 0x2d, 0x72, 0x65, 0x71, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6c, + 0x69, 0x63, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x6c, 0x67, 0x2d, 0x72, 0x65, + 0x71, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, + 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x2d, 0x72, + 0x65, 0x73, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, + 0x6f, 0x72, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x2e, 0x31, 0x32, 0x09, 0x64, 0x6f, 0x63, 0x6d, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6f, 0x72, 0x64, 0x2e, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x64, + 0x6f, 0x74, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x09, 0x09, 0x09, 0x77, 0x70, 0x73, 0x20, 0x77, + 0x6b, 0x73, 0x20, 0x77, 0x63, 0x6d, 0x20, 0x77, 0x64, 0x62, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x70, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, + 0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x09, + 0x09, 0x09, 0x78, 0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, + 0x65, 0x71, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x73, 0x65, 0x71, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x69, 0x67, 0x6e, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, + 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x63, 0x69, 0x66, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x2d, 0x6e, + 0x69, 0x66, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, + 0x63, 0x69, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x6d, 0x75, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x76, 0x65, 0x65, 0x2e, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x09, 0x09, 0x09, 0x6d, 0x73, 0x74, 0x79, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x79, 0x6e, 0x66, 0x63, 0x09, 0x09, 0x09, 0x09, 0x74, + 0x61, 0x67, 0x6c, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x63, 0x64, 0x2e, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6e, 0x65, 0x72, 0x76, 0x61, 0x6e, 0x61, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x66, 0x70, 0x78, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x75, 0x72, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x2e, 0x6e, 0x6c, 0x75, 0x09, 0x09, 0x6e, 0x6c, + 0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x69, 0x74, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x6e, 0x74, 0x66, 0x20, 0x6e, 0x69, 0x74, 0x66, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62, 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x2d, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x09, 0x09, 0x6e, + 0x6e, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62, 0x6c, 0x65, + 0x6e, 0x65, 0x74, 0x2d, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x09, 0x09, + 0x09, 0x6e, 0x6e, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62, + 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x2d, 0x77, 0x65, 0x62, 0x09, 0x09, 0x09, + 0x6e, 0x6e, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, + 0x6b, 0x69, 0x61, 0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x63, 0x6f, 0x6e, 0x6d, 0x6c, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x63, 0x6f, 0x6e, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69, + 0x73, 0x64, 0x73, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x6c, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, + 0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x63, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x09, 0x09, 0x6e, 0x67, 0x64, 0x61, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, + 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x2e, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x09, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, + 0x6e, 0x63, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, + 0x6b, 0x69, 0x61, 0x2e, 0x70, 0x63, 0x64, 0x2b, 0x77, 0x62, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, + 0x61, 0x2e, 0x70, 0x63, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x09, 0x09, 0x72, 0x70, + 0x73, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x73, 0x09, 0x09, 0x72, 0x70, 0x73, 0x73, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6e, 0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x64, + 0x6d, 0x09, 0x09, 0x09, 0x65, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x64, 0x78, + 0x09, 0x09, 0x09, 0x65, 0x64, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, + 0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x78, 0x74, 0x09, + 0x09, 0x09, 0x65, 0x78, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2e, 0x66, 0x69, + 0x6c, 0x65, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x2e, 0x73, 0x69, 0x70, 0x2d, 0x74, 0x61, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2e, 0x73, 0x69, + 0x70, 0x2d, 0x74, 0x61, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, + 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x6f, 0x64, + 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x09, 0x09, 0x6f, 0x64, 0x62, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x75, 0x6c, 0x61, 0x09, 0x09, 0x6f, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x75, 0x6c, 0x61, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x09, 0x6f, 0x64, 0x66, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, + 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x73, 0x09, 0x09, 0x6f, 0x64, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x73, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, + 0x6f, 0x74, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, + 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09, 0x6f, 0x64, + 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x6f, 0x64, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x09, 0x09, 0x6f, 0x64, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, + 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x09, 0x6f, 0x74, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, + 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, + 0x6f, 0x64, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, + 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x09, 0x09, 0x6f, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x74, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x77, 0x65, 0x62, 0x09, 0x09, 0x6f, 0x74, + 0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x62, 0x6e, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x66, 0x74, 0x6e, 0x2e, 0x6c, + 0x31, 0x30, 0x6e, 0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63, + 0x73, 0x70, 0x67, 0x2d, 0x68, 0x65, 0x78, 0x62, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, + 0x2e, 0x64, 0x61, 0x65, 0x2e, 0x73, 0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, + 0x64, 0x61, 0x65, 0x2e, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, + 0x2e, 0x6d, 0x69, 0x70, 0x70, 0x76, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, + 0x70, 0x61, 0x65, 0x2e, 0x67, 0x65, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x73, 0x70, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x73, 0x70, + 0x64, 0x6c, 0x69, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x75, 0x65, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6c, 0x70, 0x63, 0x2d, 0x73, + 0x75, 0x67, 0x61, 0x72, 0x09, 0x09, 0x09, 0x78, 0x6f, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63, 0x77, 0x73, + 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63, 0x77, 0x73, 0x2d, 0x68, + 0x74, 0x74, 0x70, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63, + 0x77, 0x73, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x61, 0x73, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x64, 0x75, 0x72, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, + 0x64, 0x72, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, + 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x69, 0x6d, 0x64, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, + 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x6c, 0x74, 0x6b, 0x6d, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, + 0x63, 0x61, 0x73, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, + 0x6e, 0x67, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, + 0x74, 0x2e, 0x73, 0x67, 0x62, 0x6f, 0x6f, 0x74, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, + 0x2e, 0x73, 0x67, 0x64, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, + 0x74, 0x2e, 0x73, 0x67, 0x64, 0x75, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x73, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, + 0x73, 0x74, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x72, 0x64, + 0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, + 0x63, 0x61, 0x73, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x6f, 0x76, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, + 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x73, 0x74, 0x6b, 0x6d, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x63, 0x61, + 0x62, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x62, 0x6f, + 0x6f, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x63, 0x61, 0x62, 0x2d, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x6d, 0x61, 0x2e, 0x63, 0x61, 0x62, 0x2d, 0x70, 0x63, 0x63, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, + 0x2e, 0x63, 0x61, 0x62, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x70, 0x72, + 0x65, 0x66, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x63, 0x64, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x63, 0x64, 0x63, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x64, 0x32, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x64, 0x32, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x72, 0x6d, + 0x2e, 0x72, 0x69, 0x73, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x6d, 0x61, 0x2e, 0x70, 0x61, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63, + 0x2e, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2d, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63, 0x2e, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x70, + 0x6f, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, + 0x70, 0x6f, 0x63, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x2d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x6d, 0x61, 0x2e, 0x73, 0x63, 0x69, 0x64, 0x6d, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x78, 0x63, 0x61, 0x70, + 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, + 0x64, 0x73, 0x2d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x64, 0x73, + 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x64, 0x73, 0x2d, 0x66, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x6c, 0x6f, 0x63, 0x2d, 0x73, 0x75, + 0x70, 0x6c, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x6f, 0x72, + 0x67, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x09, + 0x09, 0x6f, 0x78, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2d, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x78, 0x6d, 0x6c, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, + 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, + 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, + 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x64, 0x61, + 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, + 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, + 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x2d, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6f, + 0x75, 0x74, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x6d, 0x6c, 0x2e, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x6e, + 0x6f, 0x74, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x6d, 0x6c, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x09, 0x70, 0x70, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, + 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, + 0x2e, 0x70, 0x72, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x09, 0x73, 0x6c, + 0x64, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, + 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x6d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, + 0x73, 0x68, 0x6f, 0x77, 0x09, 0x70, 0x70, 0x73, 0x78, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, + 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, + 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x73, 0x68, 0x6f, 0x77, 0x2e, 0x6d, + 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, + 0x6c, 0x69, 0x64, 0x65, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x69, 0x6e, + 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, + 0x70, 0x6f, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x70, 0x72, 0x6f, + 0x70, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x61, 0x6c, + 0x63, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, + 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, + 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, + 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, + 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x6d, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x6c, + 0x6f, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x78, 0x6c, 0x73, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x6d, 0x61, + 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, + 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, + 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, + 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, + 0x78, 0x6c, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x6d, 0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x76, 0x6f, 0x6c, 0x61, 0x74, + 0x69, 0x6c, 0x65, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, + 0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, + 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x68, + 0x65, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x6d, 0x6c, 0x64, 0x72, 0x61, 0x77, 0x69, + 0x6e, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x09, 0x64, 0x6f, 0x63, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x65, 0x6e, 0x64, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, + 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, + 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x6d, 0x6c, 0x2e, 0x66, 0x6f, 0x6e, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x66, 0x6f, + 0x6f, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, + 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, + 0x6c, 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, + 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x6d, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x64, 0x6f, 0x74, + 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, + 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x2d, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2d, 0x78, 0x6d, + 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x71, 0x75, 0x6f, 0x78, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6f, 0x73, 0x61, 0x2e, 0x6e, 0x65, 0x74, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x65, 0x6f, 0x2e, + 0x6d, 0x61, 0x70, 0x67, 0x75, 0x69, 0x64, 0x65, 0x2e, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x09, 0x09, 0x6d, 0x67, 0x70, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69, 0x2e, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69, + 0x2e, 0x64, 0x70, 0x09, 0x09, 0x09, 0x09, 0x64, 0x70, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x09, 0x09, 0x09, 0x65, 0x73, 0x61, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x74, 0x70, 0x73, 0x2e, 0x63, 0x74, + 0x2d, 0x6b, 0x69, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x70, 0x61, 0x6c, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x70, 0x64, 0x62, + 0x20, 0x70, 0x71, 0x61, 0x20, 0x6f, 0x70, 0x72, 0x63, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x6f, 0x73, 0x2e, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x77, 0x61, 0x61, 0x66, 0x69, + 0x6c, 0x65, 0x09, 0x09, 0x09, 0x70, 0x61, 0x77, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x70, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x09, 0x09, + 0x09, 0x73, 0x74, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x67, 0x2e, + 0x6f, 0x73, 0x61, 0x73, 0x6c, 0x69, 0x09, 0x09, 0x09, 0x65, 0x69, 0x36, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x69, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x69, 0x63, 0x73, 0x65, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x65, 0x66, 0x69, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, + 0x6d, 0x69, 0x2e, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x09, 0x09, 0x09, + 0x77, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x63, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x09, 0x09, 0x09, 0x70, 0x6c, 0x66, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x36, 0x09, 0x09, 0x09, 0x70, 0x62, 0x64, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x36, 0x2d, 0x73, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x37, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37, + 0x2d, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37, 0x35, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37, 0x35, 0x2d, 0x73, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x65, + 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x62, 0x6f, 0x78, + 0x09, 0x09, 0x62, 0x6f, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x75, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x61, 0x7a, 0x69, + 0x6e, 0x65, 0x09, 0x09, 0x6d, 0x67, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2d, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x2d, 0x74, 0x72, 0x65, 0x65, 0x09, 0x09, 0x71, + 0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x76, 0x69, 0x2e, 0x70, + 0x74, 0x69, 0x64, 0x31, 0x09, 0x09, 0x09, 0x70, 0x74, 0x69, 0x64, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x77, 0x67, 0x2d, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x65, 0x64, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x77, 0x67, 0x2d, 0x78, 0x68, 0x74, 0x6d, + 0x6c, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x63, 0x6f, + 0x6d, 0x6d, 0x2e, 0x62, 0x72, 0x65, 0x77, 0x2d, 0x61, 0x70, 0x70, 0x2d, + 0x72, 0x65, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x61, 0x72, + 0x6b, 0x2e, 0x71, 0x75, 0x61, 0x72, 0x6b, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x09, 0x09, 0x71, 0x78, 0x64, 0x20, 0x71, 0x78, 0x74, 0x20, 0x71, + 0x77, 0x64, 0x20, 0x71, 0x77, 0x74, 0x20, 0x71, 0x78, 0x6c, 0x20, 0x71, + 0x78, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x6f, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, + 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, + 0x2d, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, + 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, + 0x75, 0x64, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, + 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, + 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, + 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, + 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x2d, 0x66, 0x61, 0x78, 0x2d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, + 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, + 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2d, 0x66, 0x61, 0x78, 0x2d, 0x73, 0x65, + 0x6e, 0x64, 0x72, 0x65, 0x63, 0x76, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, + 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, + 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, + 0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, + 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, + 0x67, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, + 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x70, 0x69, 0x64, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x76, 0x6e, 0x63, 0x2e, + 0x62, 0x65, 0x64, 0x09, 0x09, 0x09, 0x62, 0x65, 0x64, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x72, 0x65, 0x2e, + 0x6d, 0x75, 0x73, 0x69, 0x63, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x78, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x61, 0x72, 0x65, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x78, 0x6d, 0x6c, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x6e, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x2e, 0x72, 0x6c, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x69, 0x67, 0x2e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x6e, 0x6f, 0x74, 0x65, 0x09, 0x09, 0x09, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x6e, 0x6f, 0x74, 0x65, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x72, 0x69, 0x6d, 0x2e, 0x63, 0x6f, 0x64, 0x09, 0x09, 0x09, + 0x09, 0x63, 0x6f, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6e, 0x2d, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x09, 0x09, 0x09, + 0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6e, 0x2d, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2d, 0x76, 0x62, 0x72, 0x09, + 0x09, 0x72, 0x6d, 0x76, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x36, 0x36, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x36, 0x36, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x36, 0x36, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x73, 0x2d, 0x32, 0x37, + 0x34, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x75, 0x63, + 0x6b, 0x75, 0x73, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x33, 0x73, 0x6d, 0x73, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x09, 0x09, 0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x62, 0x6d, 0x2e, 0x63, 0x69, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x73, 0x62, 0x6d, 0x2e, 0x6d, 0x69, 0x64, 0x32, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x75, 0x73, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, + 0x64, 0x2e, 0x33, 0x64, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x63, 0x73, 0x66, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, + 0x64, 0x6f, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, + 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x65, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x68, + 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, + 0x65, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x70, 0x70, 0x74, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, + 0x2e, 0x74, 0x69, 0x66, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x78, 0x6c, 0x73, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, + 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x70, 0x64, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x65, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x65, 0x6d, 0x61, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x6d, + 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x6d, 0x64, 0x09, 0x09, + 0x09, 0x09, 0x73, 0x65, 0x6d, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x65, 0x6d, 0x66, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x6d, 0x66, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x64, + 0x61, 0x74, 0x61, 0x09, 0x09, 0x69, 0x66, 0x6d, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x09, 0x69, 0x74, 0x70, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x65, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x09, 0x69, 0x69, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x65, 0x64, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x09, 0x09, + 0x69, 0x70, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x69, 0x6d, 0x74, + 0x65, 0x63, 0x68, 0x2d, 0x6d, 0x69, 0x6e, 0x64, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x09, 0x09, 0x74, 0x77, 0x64, 0x20, 0x74, 0x77, 0x64, 0x73, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x09, 0x09, 0x09, + 0x09, 0x6d, 0x6d, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x6d, 0x61, 0x72, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x2e, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x09, 0x09, 0x09, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x36, 0x30, 0x32, 0x2e, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x36, 0x30, 0x32, 0x2e, 0x66, 0x69, + 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x78, 0x6d, + 0x6c, 0x2d, 0x7a, 0x69, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6f, + 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x64, 0x6b, 0x6d, 0x2b, 0x78, 0x6d, + 0x6c, 0x09, 0x09, 0x09, 0x73, 0x64, 0x6b, 0x6d, 0x20, 0x73, 0x64, 0x6b, + 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x66, 0x69, + 0x72, 0x65, 0x2e, 0x64, 0x78, 0x70, 0x09, 0x09, 0x09, 0x64, 0x78, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x66, 0x69, 0x72, + 0x65, 0x2e, 0x73, 0x66, 0x73, 0x09, 0x09, 0x09, 0x73, 0x66, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73, 0x73, 0x2d, 0x63, 0x6f, + 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73, 0x73, 0x2d, + 0x64, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73, + 0x73, 0x2d, 0x6e, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, + 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x63, + 0x61, 0x6c, 0x63, 0x09, 0x09, 0x73, 0x64, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x09, 0x09, 0x73, 0x64, 0x61, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x09, 0x09, 0x73, 0x64, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, + 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6d, + 0x61, 0x74, 0x68, 0x09, 0x09, 0x73, 0x6d, 0x66, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x09, 0x09, 0x73, 0x64, + 0x77, 0x20, 0x76, 0x6f, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, + 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x72, 0x2d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x09, 0x73, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x65, + 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x09, 0x09, 0x73, 0x6d, 0x7a, 0x69, 0x70, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x73, 0x74, 0x65, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x2e, + 0x73, 0x74, 0x65, 0x70, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x73, + 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x65, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x63, 0x61, + 0x6c, 0x63, 0x09, 0x09, 0x09, 0x73, 0x78, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x63, 0x61, 0x6c, + 0x63, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, + 0x73, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, + 0x78, 0x6d, 0x6c, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x09, 0x09, 0x09, 0x73, + 0x78, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, + 0x6d, 0x6c, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x2e, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x73, 0x74, 0x64, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x69, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x09, 0x09, 0x09, 0x73, 0x78, 0x69, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, + 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x09, 0x73, 0x74, 0x69, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x6d, 0x61, 0x74, + 0x68, 0x09, 0x09, 0x09, 0x73, 0x78, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x09, 0x09, 0x09, 0x73, 0x78, 0x77, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x72, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x09, 0x09, + 0x73, 0x78, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, + 0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x2e, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x73, 0x74, 0x77, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x77, + 0x61, 0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x75, 0x73, 0x2d, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, + 0x09, 0x09, 0x09, 0x73, 0x75, 0x73, 0x20, 0x73, 0x75, 0x73, 0x70, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x76, 0x64, 0x09, 0x09, 0x09, 0x09, 0x73, + 0x76, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x77, 0x69, + 0x66, 0x74, 0x76, 0x69, 0x65, 0x77, 0x2d, 0x69, 0x63, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x2e, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x09, 0x09, 0x09, 0x73, 0x69, 0x73, + 0x20, 0x73, 0x69, 0x73, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78, + 0x73, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x6d, + 0x6c, 0x2e, 0x64, 0x6d, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x62, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x6d, 0x6c, 0x2e, 0x64, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x78, 0x64, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x6d, 0x6c, 0x2e, 0x64, 0x6d, 0x2e, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x6d, 0x6c, 0x2e, 0x64, + 0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x61, 0x6f, 0x2e, 0x69, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x09, 0x74, 0x61, 0x6f, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x63, 0x70, 0x64, 0x75, 0x6d, 0x70, + 0x2e, 0x70, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09, 0x70, 0x63, 0x61, 0x70, + 0x20, 0x63, 0x61, 0x70, 0x20, 0x64, 0x6d, 0x70, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x74, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x6c, 0x69, 0x76, + 0x65, 0x74, 0x76, 0x09, 0x09, 0x09, 0x74, 0x6d, 0x6f, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x74, 0x72, 0x69, 0x64, 0x2e, 0x74, 0x70, 0x74, 0x09, 0x09, + 0x09, 0x74, 0x70, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x69, + 0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6d, 0x78, 0x73, 0x09, 0x09, 0x09, + 0x6d, 0x78, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x65, + 0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x09, 0x74, 0x72, 0x61, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x65, 0x64, 0x6f, 0x63, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x62, 0x69, 0x73, 0x6f, + 0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x66, 0x64, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x75, 0x66, 0x64, 0x20, 0x75, 0x66, 0x64, 0x6c, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x75, 0x69, 0x71, 0x2e, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x09, + 0x09, 0x09, 0x75, 0x74, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x6d, + 0x61, 0x6a, 0x69, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x75, 0x6d, 0x6a, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x09, 0x09, 0x09, + 0x09, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x77, 0x65, 0x62, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x75, 0x6f, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x75, 0x6f, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x77, 0x62, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x2d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x62, 0x65, + 0x61, 0x72, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2d, + 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x6f, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x6f, + 0x70, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, + 0x6c, 0x69, 0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x2d, + 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, + 0x63, 0x6d, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x63, 0x6d, + 0x64, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x63, 0x78, + 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x76, 0x64, 0x2d, 0x73, 0x74, 0x75, 0x64, 0x79, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, + 0x65, 0x72, 0x69, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x76, 0x63, + 0x61, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x64, + 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x76, 0x69, 0x64, 0x63, 0x6f, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x76, 0x73, 0x64, 0x20, + 0x76, 0x73, 0x74, 0x20, 0x76, 0x73, 0x73, 0x20, 0x76, 0x73, 0x77, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x72, + 0x79, 0x09, 0x09, 0x09, 0x76, 0x69, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x76, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x76, 0x73, 0x66, 0x09, 0x09, 0x09, 0x09, 0x76, 0x73, + 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, + 0x73, 0x69, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, + 0x70, 0x2e, 0x73, 0x6c, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, + 0x70, 0x2e, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x77, 0x62, + 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, + 0x77, 0x6d, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c, 0x63, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, 0x6d, 0x6c, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x63, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c, + 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x74, 0x75, + 0x72, 0x62, 0x6f, 0x09, 0x09, 0x09, 0x77, 0x74, 0x62, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x66, 0x61, 0x2e, 0x77, 0x73, 0x63, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6d, 0x63, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6d, 0x66, 0x2e, 0x62, 0x6f, 0x6f, 0x74, + 0x73, 0x74, 0x72, 0x61, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x77, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x6d, 0x61, 0x74, 0x68, + 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x77, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x6d, 0x61, + 0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x2e, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6f, + 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x09, 0x09, 0x09, 0x6e, 0x62, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, + 0x6f, 0x72, 0x64, 0x70, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74, 0x09, 0x09, + 0x09, 0x77, 0x70, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x71, 0x64, + 0x09, 0x09, 0x09, 0x09, 0x77, 0x71, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x77, 0x72, 0x71, 0x2d, 0x68, 0x70, 0x33, 0x30, 0x30, 0x30, + 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x77, 0x74, 0x2e, 0x73, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09, + 0x73, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76, + 0x2e, 0x63, 0x73, 0x70, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76, 0x2e, 0x63, 0x73, 0x70, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76, + 0x2e, 0x73, 0x73, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x78, 0x61, 0x72, 0x61, 0x09, 0x09, 0x09, 0x09, 0x78, 0x61, 0x72, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x66, 0x64, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x78, 0x66, 0x64, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x78, 0x66, 0x64, 0x6c, 0x2e, 0x77, 0x65, 0x62, 0x66, 0x6f, 0x72, 0x6d, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x69, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70, + 0x69, 0x65, 0x2e, 0x63, 0x70, 0x6b, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x64, 0x70, 0x6b, 0x67, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65, + 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x70, 0x70, 0x6b, 0x67, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x78, + 0x6c, 0x69, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, + 0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x64, 0x69, 0x63, 0x09, 0x09, 0x09, + 0x68, 0x76, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, + 0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x09, 0x09, 0x68, 0x76, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, + 0x6d, 0x61, 0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x09, 0x09, 0x09, 0x68, 0x76, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x79, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x09, 0x09, + 0x09, 0x6f, 0x73, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, + 0x61, 0x68, 0x61, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x6f, 0x73, 0x66, 0x70, + 0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x6f, 0x73, 0x66, 0x70, 0x76, + 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, + 0x68, 0x61, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x73, 0x65, + 0x74, 0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, + 0x68, 0x61, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x2d, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x09, 0x09, 0x73, 0x61, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, + 0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x2d, 0x70, + 0x68, 0x72, 0x61, 0x73, 0x65, 0x09, 0x09, 0x73, 0x70, 0x66, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x2d, 0x6e, 0x67, 0x6e, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, 0x68, 0x61, + 0x2e, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x2d, 0x75, 0x64, 0x70, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x65, 0x6c, + 0x6c, 0x6f, 0x77, 0x72, 0x69, 0x76, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x09, 0x09, 0x63, 0x6d, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x7a, 0x75, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x7a, 0x69, 0x72, 0x20, 0x7a, 0x69, 0x72, 0x7a, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x7a, 0x7a, 0x61, 0x7a, 0x7a, 0x2e, 0x64, 0x65, 0x63, 0x6b, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x7a, 0x61, 0x7a, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x78, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x76, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x71, 0x2d, + 0x72, 0x74, 0x63, 0x70, 0x78, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x77, 0x68, 0x6f, 0x69, 0x73, 0x70, 0x70, 0x2d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x68, 0x6f, 0x69, 0x73, + 0x70, 0x70, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x09, 0x09, 0x09, 0x09, 0x77, 0x67, + 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x77, 0x69, 0x6e, 0x68, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x09, + 0x68, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x69, 0x74, 0x61, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74, + 0x35, 0x2e, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x73, 0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x77, 0x73, 0x64, 0x6c, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x73, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x77, 0x73, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x37, + 0x7a, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x09, 0x09, 0x09, 0x37, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x62, 0x69, 0x77, + 0x6f, 0x72, 0x64, 0x09, 0x09, 0x09, 0x09, 0x61, 0x62, 0x77, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x61, 0x63, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x61, 0x63, 0x65, 0x0a, 0x23, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x61, 0x6d, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x70, 0x70, 0x6c, + 0x65, 0x2d, 0x64, 0x69, 0x73, 0x6b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, + 0x09, 0x09, 0x64, 0x6d, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x09, 0x09, + 0x09, 0x61, 0x61, 0x62, 0x20, 0x78, 0x33, 0x32, 0x20, 0x75, 0x33, 0x32, + 0x20, 0x76, 0x6f, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09, + 0x61, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x65, 0x67, 0x09, 0x09, 0x09, 0x61, + 0x61, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x63, 0x70, 0x69, 0x6f, 0x09, 0x09, + 0x09, 0x09, 0x62, 0x63, 0x70, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x69, + 0x74, 0x74, 0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x09, 0x09, 0x09, 0x74, + 0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x6c, 0x6f, + 0x72, 0x62, 0x09, 0x09, 0x09, 0x09, 0x62, 0x6c, 0x62, 0x20, 0x62, 0x6c, + 0x6f, 0x72, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x7a, 0x69, 0x70, 0x09, 0x09, + 0x09, 0x09, 0x62, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x7a, 0x69, 0x70, 0x32, + 0x09, 0x09, 0x09, 0x09, 0x62, 0x7a, 0x32, 0x20, 0x62, 0x6f, 0x7a, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x63, 0x62, 0x72, 0x09, 0x09, 0x09, 0x09, 0x63, 0x62, 0x72, + 0x20, 0x63, 0x62, 0x61, 0x20, 0x63, 0x62, 0x74, 0x20, 0x63, 0x62, 0x7a, + 0x20, 0x63, 0x62, 0x37, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x64, 0x6c, 0x69, 0x6e, + 0x6b, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, + 0x66, 0x73, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x09, 0x09, 0x09, 0x63, 0x66, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x68, + 0x61, 0x74, 0x09, 0x09, 0x09, 0x09, 0x63, 0x68, 0x61, 0x74, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x63, 0x68, 0x65, 0x73, 0x73, 0x2d, 0x70, 0x67, 0x6e, 0x09, 0x09, + 0x09, 0x09, 0x70, 0x67, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x6f, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x09, 0x09, 0x09, 0x6e, 0x73, 0x63, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x70, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, + 0x63, 0x70, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x73, 0x68, 0x09, 0x09, + 0x09, 0x09, 0x63, 0x73, 0x68, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x65, 0x62, 0x69, + 0x61, 0x6e, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x09, 0x09, + 0x09, 0x64, 0x65, 0x62, 0x20, 0x75, 0x64, 0x65, 0x62, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x64, 0x67, 0x63, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x64, 0x09, 0x09, 0x09, 0x64, 0x67, 0x63, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x64, 0x69, + 0x72, 0x20, 0x64, 0x63, 0x72, 0x20, 0x64, 0x78, 0x72, 0x20, 0x63, 0x73, + 0x74, 0x20, 0x63, 0x63, 0x74, 0x20, 0x63, 0x78, 0x74, 0x20, 0x77, 0x33, + 0x64, 0x20, 0x66, 0x67, 0x64, 0x20, 0x73, 0x77, 0x61, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x64, 0x6f, 0x6f, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x77, 0x61, 0x64, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x64, 0x74, 0x62, 0x6e, 0x63, 0x78, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x6e, 0x63, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x74, 0x62, + 0x6f, 0x6f, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x74, + 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x74, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x65, + 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x76, 0x69, 0x09, 0x09, 0x09, 0x09, 0x64, + 0x76, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x09, 0x09, + 0x09, 0x09, 0x65, 0x76, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x65, 0x76, 0x61, 0x09, + 0x09, 0x09, 0x09, 0x65, 0x76, 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x62, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x62, 0x64, 0x66, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x64, 0x6f, + 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x67, 0x73, 0x66, 0x0a, 0x23, + 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, 0x67, + 0x72, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6c, 0x69, + 0x6e, 0x75, 0x78, 0x2d, 0x70, 0x73, 0x66, 0x09, 0x09, 0x09, 0x70, 0x73, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6f, 0x74, 0x66, + 0x09, 0x09, 0x09, 0x09, 0x6f, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x70, 0x63, 0x66, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x6e, 0x66, + 0x09, 0x09, 0x09, 0x09, 0x73, 0x6e, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x6f, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x75, 0x6e, + 0x6f, 0x73, 0x2d, 0x6e, 0x65, 0x77, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x74, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09, 0x74, 0x74, + 0x66, 0x20, 0x74, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x74, 0x79, 0x70, 0x65, 0x31, 0x09, 0x09, 0x09, 0x70, 0x66, 0x61, + 0x20, 0x70, 0x66, 0x62, 0x20, 0x70, 0x66, 0x6d, 0x20, 0x61, 0x66, 0x6d, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x6f, 0x66, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x77, 0x6f, 0x66, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x76, 0x66, 0x6f, 0x6e, 0x74, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x66, 0x72, 0x65, 0x65, 0x61, 0x72, 0x63, 0x09, 0x09, 0x09, 0x09, 0x61, + 0x72, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x70, 0x6c, 0x61, 0x73, 0x68, 0x09, 0x09, 0x09, 0x73, 0x70, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x67, 0x63, 0x61, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x67, 0x63, 0x61, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x67, 0x6c, 0x75, 0x6c, 0x78, 0x09, 0x09, 0x09, 0x09, 0x75, 0x6c, + 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x67, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x09, 0x09, 0x09, 0x09, 0x67, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x67, 0x72, 0x61, 0x6d, 0x70, 0x73, 0x2d, 0x78, 0x6d, + 0x6c, 0x09, 0x09, 0x09, 0x67, 0x72, 0x61, 0x6d, 0x70, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x67, 0x74, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x67, 0x74, 0x61, + 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x67, 0x7a, 0x69, 0x70, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x68, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x68, 0x64, 0x66, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x2d, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x09, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x69, 0x73, + 0x6f, 0x39, 0x36, 0x36, 0x30, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, + 0x09, 0x09, 0x69, 0x73, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6a, 0x61, 0x76, 0x61, + 0x2d, 0x6a, 0x6e, 0x6c, 0x70, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x09, 0x09, + 0x09, 0x6a, 0x6e, 0x6c, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6c, 0x61, 0x74, 0x65, + 0x78, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x78, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x6c, 0x7a, 0x68, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x6c, 0x7a, 0x68, 0x20, 0x6c, 0x68, + 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x69, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x69, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x6f, 0x62, 0x69, 0x70, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x2d, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x09, 0x09, 0x09, + 0x70, 0x72, 0x63, 0x20, 0x6d, 0x6f, 0x62, 0x69, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, + 0x73, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x09, 0x09, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x09, 0x09, 0x09, 0x6c, 0x6e, 0x6b, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x6d, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x7a, + 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, + 0x2d, 0x78, 0x62, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09, 0x78, 0x62, 0x61, + 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x09, 0x09, 0x09, 0x09, 0x6d, 0x64, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, + 0x62, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x62, + 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x63, 0x61, 0x72, 0x64, 0x66, 0x69, + 0x6c, 0x65, 0x09, 0x09, 0x09, 0x63, 0x72, 0x64, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, + 0x73, 0x63, 0x6c, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x09, 0x09, 0x09, 0x65, 0x78, 0x65, 0x20, 0x64, 0x6c, 0x6c, 0x20, + 0x63, 0x6f, 0x6d, 0x20, 0x62, 0x61, 0x74, 0x20, 0x6d, 0x73, 0x69, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x6d, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x76, 0x69, 0x65, + 0x77, 0x09, 0x09, 0x09, 0x6d, 0x76, 0x62, 0x20, 0x6d, 0x31, 0x33, 0x20, + 0x6d, 0x31, 0x34, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x6d, 0x65, 0x74, 0x61, + 0x66, 0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x66, 0x20, 0x77, + 0x6d, 0x7a, 0x20, 0x65, 0x6d, 0x66, 0x20, 0x65, 0x6d, 0x7a, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x6d, 0x73, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x09, 0x09, 0x09, 0x09, + 0x6d, 0x6e, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x09, 0x09, 0x09, 0x70, 0x75, 0x62, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x6d, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x09, 0x09, 0x09, 0x73, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x09, 0x09, 0x09, 0x74, 0x72, + 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x77, 0x72, 0x69, 0x74, 0x65, 0x09, + 0x09, 0x09, 0x09, 0x77, 0x72, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6e, 0x65, 0x74, + 0x63, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x6e, 0x63, 0x20, 0x63, 0x64, + 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x6e, 0x7a, 0x62, 0x09, 0x09, 0x09, 0x09, 0x6e, + 0x7a, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x70, 0x6b, 0x63, 0x73, 0x31, 0x32, 0x09, + 0x09, 0x09, 0x09, 0x70, 0x31, 0x32, 0x20, 0x70, 0x66, 0x78, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x70, 0x6b, 0x63, 0x73, 0x37, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x09, 0x09, 0x70, 0x37, 0x62, + 0x20, 0x73, 0x70, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x70, 0x6b, 0x63, 0x73, 0x37, + 0x2d, 0x63, 0x65, 0x72, 0x74, 0x72, 0x65, 0x71, 0x72, 0x65, 0x73, 0x70, + 0x09, 0x09, 0x09, 0x70, 0x37, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x72, 0x61, 0x72, + 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x09, + 0x09, 0x09, 0x72, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x72, 0x65, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2d, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x73, 0x09, 0x09, 0x72, 0x69, 0x73, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x73, 0x68, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x73, 0x68, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x61, 0x72, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x73, 0x68, 0x6f, 0x63, 0x6b, 0x77, 0x61, 0x76, 0x65, + 0x2d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x09, 0x09, 0x09, 0x73, 0x77, 0x66, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x78, 0x61, 0x70, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x2d, 0x73, 0x71, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x71, + 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x74, 0x75, 0x66, 0x66, 0x69, 0x74, 0x09, + 0x09, 0x09, 0x09, 0x73, 0x69, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x74, 0x75, + 0x66, 0x66, 0x69, 0x74, 0x78, 0x09, 0x09, 0x09, 0x09, 0x73, 0x69, 0x74, + 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x75, 0x62, 0x72, 0x69, 0x70, 0x09, 0x09, + 0x09, 0x09, 0x73, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x76, 0x34, 0x63, + 0x70, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x73, 0x76, 0x34, 0x63, 0x70, + 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x76, 0x34, 0x63, 0x72, 0x63, 0x09, + 0x09, 0x09, 0x09, 0x73, 0x76, 0x34, 0x63, 0x72, 0x63, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x74, 0x33, 0x76, 0x6d, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09, + 0x09, 0x74, 0x33, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x61, 0x64, 0x73, 0x09, 0x09, + 0x09, 0x09, 0x67, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x61, 0x72, 0x09, + 0x09, 0x09, 0x09, 0x74, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x63, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x74, 0x63, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x65, + 0x78, 0x09, 0x09, 0x09, 0x09, 0x74, 0x65, 0x78, 0x0a, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, + 0x65, 0x78, 0x2d, 0x74, 0x66, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x74, 0x66, + 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x65, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x09, + 0x09, 0x09, 0x09, 0x74, 0x65, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x74, + 0x65, 0x78, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x67, 0x69, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x6f, 0x62, 0x6a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x75, 0x73, 0x74, 0x61, + 0x72, 0x09, 0x09, 0x09, 0x09, 0x75, 0x73, 0x74, 0x61, 0x72, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x77, 0x61, 0x69, 0x73, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x09, 0x09, 0x09, 0x73, 0x72, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x35, 0x30, + 0x39, 0x2d, 0x63, 0x61, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09, 0x09, 0x09, + 0x64, 0x65, 0x72, 0x20, 0x63, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x66, + 0x69, 0x67, 0x09, 0x09, 0x09, 0x09, 0x66, 0x69, 0x67, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, + 0x78, 0x6c, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x78, 0x6c, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x70, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x69, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x2d, 0x78, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x78, 0x7a, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x2d, 0x7a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x09, 0x09, 0x09, + 0x09, 0x7a, 0x31, 0x20, 0x7a, 0x32, 0x20, 0x7a, 0x33, 0x20, 0x7a, 0x34, + 0x20, 0x7a, 0x35, 0x20, 0x7a, 0x36, 0x20, 0x7a, 0x37, 0x20, 0x7a, 0x38, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x34, 0x30, 0x30, 0x2d, 0x62, 0x70, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, + 0x61, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, 0x70, 0x2d, 0x61, + 0x74, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, + 0x70, 0x2d, 0x63, 0x61, 0x70, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x63, 0x61, 0x70, 0x2d, 0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x78, 0x64, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, + 0x70, 0x2d, 0x65, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, + 0x63, 0x61, 0x70, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2b, 0x78, 0x6d, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, 0x70, 0x2d, 0x6e, 0x73, 0x2b, + 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x6f, 0x6e, 0x2d, 0x63, + 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x6e, + 0x66, 0x6f, 0x2d, 0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x63, 0x6f, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, + 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x65, 0x6e, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x78, 0x65, 0x6e, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x68, 0x74, 0x6d, + 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x68, 0x74, + 0x6d, 0x6c, 0x20, 0x78, 0x68, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x68, 0x74, + 0x6d, 0x6c, 0x2d, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x6d, 0x6c, + 0x20, 0x78, 0x73, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x6d, 0x6c, 0x2d, 0x64, 0x74, 0x64, + 0x09, 0x09, 0x09, 0x09, 0x64, 0x74, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x6d, + 0x6c, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x6d, 0x70, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x78, 0x6f, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, + 0x6f, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x70, 0x72, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x73, 0x6c, 0x74, + 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x73, 0x6c, 0x74, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x78, 0x73, 0x70, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, + 0x09, 0x78, 0x73, 0x70, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x76, 0x2b, 0x78, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x6d, 0x78, 0x6d, 0x6c, 0x20, 0x78, 0x68, 0x76, + 0x6d, 0x6c, 0x20, 0x78, 0x76, 0x6d, 0x6c, 0x20, 0x78, 0x76, 0x6d, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, + 0x79, 0x61, 0x6e, 0x67, 0x09, 0x09, 0x09, 0x09, 0x79, 0x61, 0x6e, 0x67, + 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x79, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x79, 0x69, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x7a, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x7a, 0x69, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x31, 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76, + 0x65, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x33, 0x32, 0x6b, + 0x61, 0x64, 0x70, 0x63, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x32, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x63, 0x33, 0x0a, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x61, 0x64, 0x70, 0x63, 0x6d, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x61, 0x64, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x61, 0x6d, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x61, 0x6d, 0x72, 0x2d, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x6d, 0x72, 0x2d, 0x77, 0x62, 0x2b, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x73, 0x63, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61, + 0x63, 0x2d, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x2d, 0x6c, + 0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61, 0x63, 0x2d, 0x78, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61, + 0x63, 0x33, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x75, 0x20, 0x73, 0x6e, + 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62, 0x76, + 0x31, 0x36, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62, + 0x76, 0x33, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x63, 0x6c, 0x65, 0x61, 0x72, 0x6d, 0x6f, 0x64, 0x65, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x63, 0x6e, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x31, 0x32, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x6c, 0x73, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65, + 0x73, 0x32, 0x30, 0x31, 0x31, 0x30, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65, 0x73, 0x32, 0x30, + 0x32, 0x30, 0x35, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65, 0x73, 0x32, 0x30, 0x32, 0x32, 0x31, + 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73, + 0x72, 0x2d, 0x65, 0x73, 0x32, 0x30, 0x32, 0x32, 0x31, 0x32, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x76, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x76, 0x69, 0x34, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x61, 0x63, 0x33, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, + 0x63, 0x2d, 0x71, 0x63, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x31, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x62, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, + 0x62, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, + 0x76, 0x72, 0x63, 0x62, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x77, 0x62, 0x30, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, + 0x63, 0x77, 0x62, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x66, 0x77, 0x64, 0x72, 0x65, 0x64, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x31, 0x39, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, + 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, + 0x32, 0x32, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x67, 0x37, 0x32, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x31, 0x36, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x32, 0x34, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, + 0x36, 0x2d, 0x33, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x34, 0x30, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x38, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x39, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x39, 0x31, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, + 0x39, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, + 0x37, 0x32, 0x39, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x67, 0x73, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x67, 0x73, 0x6d, 0x2d, 0x65, 0x66, 0x72, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x73, 0x6d, 0x2d, 0x68, 0x72, 0x2d, + 0x30, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x69, + 0x6c, 0x62, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x69, 0x70, 0x2d, 0x6d, 0x72, 0x5f, 0x76, 0x32, 0x2e, 0x35, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x69, 0x73, 0x61, 0x63, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x31, 0x36, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x32, 0x30, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x32, 0x34, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x38, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x70, 0x63, 0x0a, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x64, 0x69, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x6d, 0x69, 0x64, 0x20, 0x6d, 0x69, 0x64, 0x69, 0x20, 0x6b, + 0x61, 0x72, 0x20, 0x72, 0x6d, 0x69, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x78, 0x6d, + 0x66, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x34, 0x61, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x61, 0x2d, 0x6c, 0x61, + 0x74, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, + 0x70, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, + 0x70, 0x61, 0x2d, 0x72, 0x6f, 0x62, 0x75, 0x73, 0x74, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x6d, 0x70, 0x67, 0x61, 0x20, 0x6d, 0x70, 0x32, 0x20, 0x6d, 0x70, + 0x32, 0x61, 0x20, 0x6d, 0x70, 0x33, 0x20, 0x6d, 0x32, 0x61, 0x20, 0x6d, + 0x33, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, + 0x70, 0x65, 0x67, 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x75, 0x73, + 0x65, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x67, 0x61, 0x20, + 0x6f, 0x67, 0x67, 0x20, 0x73, 0x70, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x6f, 0x70, 0x75, 0x73, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, + 0x65, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, + 0x63, 0x6d, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x70, 0x63, 0x6d, 0x61, 0x2d, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x63, 0x6d, 0x75, 0x2d, 0x77, 0x62, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x63, 0x6d, 0x75, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x72, 0x73, + 0x2e, 0x73, 0x69, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x71, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x72, 0x65, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61, + 0x65, 0x73, 0x63, 0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x72, 0x74, 0x70, 0x2d, 0x6d, 0x69, 0x64, 0x69, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x72, 0x74, 0x78, + 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x33, 0x6d, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x73, 0x33, 0x6d, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x73, 0x69, 0x6c, 0x6b, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x69, + 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x6d, + 0x76, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x6d, + 0x76, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, + 0x6d, 0x76, 0x2d, 0x71, 0x63, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x73, 0x70, 0x2d, 0x6d, 0x69, 0x64, 0x69, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x70, 0x65, 0x65, 0x78, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74, 0x31, 0x34, + 0x30, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74, + 0x33, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74, + 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x2d, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74, + 0x6f, 0x6e, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x75, 0x65, 0x6d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x64, 0x76, 0x69, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6d, 0x72, 0x2d, + 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x69, 0x75, 0x66, 0x70, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x34, 0x73, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x6b, 0x6f, + 0x7a, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x69, 0x73, 0x63, 0x6f, + 0x2e, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6d, 0x6c, 0x65, 0x73, 0x2e, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x6e, 0x73, 0x2e, 0x61, 0x6e, 0x70, 0x31, 0x0a, 0x23, 0x20, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6e, 0x73, + 0x2e, 0x69, 0x6e, 0x66, 0x31, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x61, 0x20, 0x75, 0x76, + 0x76, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x2d, 0x77, 0x69, 0x6e, + 0x64, 0x73, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6f, 0x6c, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6c, + 0x6e, 0x61, 0x2e, 0x61, 0x64, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, + 0x79, 0x2e, 0x68, 0x65, 0x61, 0x61, 0x63, 0x2e, 0x31, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, + 0x6c, 0x62, 0x79, 0x2e, 0x68, 0x65, 0x61, 0x61, 0x63, 0x2e, 0x32, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6c, 0x70, 0x0a, 0x23, 0x20, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, + 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, + 0x79, 0x2e, 0x70, 0x6c, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, + 0x70, 0x6c, 0x32, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x70, + 0x6c, 0x32, 0x7a, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x70, 0x75, + 0x6c, 0x73, 0x65, 0x2e, 0x31, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x72, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x64, 0x72, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x64, 0x74, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x74, + 0x73, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x64, 0x74, 0x73, 0x2e, 0x68, 0x64, 0x09, 0x09, 0x09, 0x09, 0x64, 0x74, + 0x73, 0x68, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x65, 0x76, 0x65, 0x72, 0x61, 0x64, 0x2e, 0x70, 0x6c, 0x6a, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x68, 0x6e, 0x73, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x75, 0x63, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x09, 0x09, 0x09, 0x09, + 0x6c, 0x76, 0x70, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x70, 0x79, 0x61, + 0x09, 0x09, 0x70, 0x79, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, + 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x78, 0x6d, 0x66, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, + 0x6f, 0x72, 0x74, 0x65, 0x6c, 0x2e, 0x76, 0x62, 0x6b, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x75, 0x65, 0x72, + 0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x34, 0x38, 0x30, 0x30, 0x09, + 0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x34, 0x38, 0x30, 0x30, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x75, + 0x65, 0x72, 0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x37, 0x34, 0x37, + 0x30, 0x09, 0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x37, 0x34, 0x37, + 0x30, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6e, 0x75, 0x65, 0x72, 0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x39, + 0x36, 0x30, 0x30, 0x09, 0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x39, + 0x36, 0x30, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x63, 0x74, 0x65, 0x6c, 0x2e, 0x73, 0x62, + 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x71, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x68, 0x65, 0x74, + 0x6f, 0x72, 0x65, 0x78, 0x2e, 0x33, 0x32, 0x6b, 0x61, 0x64, 0x70, 0x63, + 0x6d, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x72, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x69, 0x70, 0x0a, + 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, + 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x6d, 0x70, 0x65, + 0x67, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x76, 0x6d, 0x78, 0x2e, 0x63, 0x76, 0x73, 0x64, 0x0a, 0x23, + 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6f, 0x72, 0x62, 0x69, + 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6f, + 0x72, 0x62, 0x69, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x77, 0x65, 0x62, 0x6d, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x77, 0x65, 0x62, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x2f, 0x78, 0x2d, 0x61, 0x61, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x61, 0x61, 0x63, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, + 0x61, 0x69, 0x66, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x69, 0x66, + 0x20, 0x61, 0x69, 0x66, 0x66, 0x20, 0x61, 0x69, 0x66, 0x63, 0x0a, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x63, 0x61, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x63, 0x61, 0x66, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x2f, 0x78, 0x2d, 0x66, 0x6c, 0x61, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x66, 0x6c, 0x61, 0x63, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, + 0x2d, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x09, 0x09, 0x09, + 0x09, 0x6d, 0x6b, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, + 0x2d, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x6d, 0x33, 0x75, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, + 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x61, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x61, 0x78, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, + 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, + 0x6d, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x70, + 0x6e, 0x2d, 0x72, 0x65, 0x61, 0x6c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x09, + 0x09, 0x09, 0x09, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x70, 0x6e, 0x2d, 0x72, 0x65, 0x61, + 0x6c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x09, 0x09, 0x09, 0x72, 0x6d, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x74, 0x74, 0x61, 0x0a, 0x61, 0x75, + 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x77, 0x61, 0x76, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x77, 0x61, 0x76, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, + 0x78, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x6d, 0x0a, 0x63, 0x68, + 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x64, 0x78, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x64, 0x78, 0x0a, 0x63, 0x68, 0x65, + 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x69, 0x66, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x69, 0x66, 0x0a, 0x63, 0x68, 0x65, 0x6d, + 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x6d, 0x64, 0x66, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x64, 0x66, 0x0a, 0x63, 0x68, 0x65, + 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x6c, 0x0a, 0x63, 0x68, 0x65, 0x6d, + 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x73, 0x6d, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x63, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x63, + 0x68, 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x70, 0x64, + 0x62, 0x0a, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, + 0x2d, 0x78, 0x79, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x79, 0x7a, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x62, 0x6d, 0x70, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x62, 0x6d, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x63, 0x67, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x67, 0x6d, + 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x66, 0x69, 0x74, 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x67, 0x33, 0x66, 0x61, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x67, 0x33, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x67, 0x69, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x69, 0x65, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x65, 0x66, + 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x32, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x65, 0x67, 0x20, 0x6a, 0x70, 0x67, + 0x20, 0x6a, 0x70, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x6a, 0x70, 0x6d, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x6a, 0x70, 0x78, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6b, + 0x74, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6b, 0x74, 0x78, 0x0a, 0x23, + 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6e, 0x61, 0x70, 0x6c, 0x70, + 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x70, 0x6e, 0x67, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x62, 0x74, 0x69, 0x66, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x62, 0x74, 0x69, 0x66, 0x0a, 0x23, 0x20, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x70, 0x74, 0x69, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x67, 0x69, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x73, 0x67, 0x69, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x73, 0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x73, 0x76, 0x67, 0x20, 0x73, 0x76, 0x67, 0x7a, 0x0a, 0x23, 0x20, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x33, 0x38, 0x0a, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x2f, 0x74, 0x69, 0x66, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x74, 0x69, 0x66, 0x66, 0x20, 0x74, 0x69, 0x66, 0x0a, 0x23, 0x20, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x69, 0x66, 0x66, 0x2d, 0x66, 0x78, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, + 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, + 0x6f, 0x70, 0x09, 0x09, 0x09, 0x70, 0x73, 0x64, 0x0a, 0x23, 0x20, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6e, 0x73, + 0x2e, 0x69, 0x6e, 0x66, 0x32, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x67, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x63, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x69, 0x20, + 0x75, 0x76, 0x76, 0x69, 0x20, 0x75, 0x76, 0x67, 0x20, 0x75, 0x76, 0x76, + 0x67, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x64, 0x76, 0x62, 0x2e, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x09, 0x09, 0x09, 0x09, 0x73, 0x75, 0x62, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6a, 0x76, 0x75, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x64, 0x6a, 0x76, 0x75, 0x20, 0x64, 0x6a, 0x76, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x77, + 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x77, 0x67, 0x0a, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x78, 0x66, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x64, 0x78, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x62, 0x69, + 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x09, 0x09, 0x09, 0x66, 0x62, + 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x66, 0x70, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x70, 0x78, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x73, + 0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x73, 0x74, 0x0a, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, + 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x65, 0x64, 0x6d, 0x69, 0x63, 0x73, + 0x2d, 0x6d, 0x6d, 0x72, 0x09, 0x09, 0x09, 0x6d, 0x6d, 0x72, 0x0a, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, + 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x65, 0x64, 0x6d, 0x69, 0x63, + 0x73, 0x2d, 0x72, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x72, 0x6c, 0x63, 0x0a, + 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x73, 0x2e, 0x70, 0x67, 0x62, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x69, 0x63, 0x6f, 0x6e, 0x0a, 0x23, 0x20, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, + 0x78, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6d, 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x69, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x64, 0x69, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x64, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x2d, 0x66, 0x70, 0x78, 0x09, 0x09, + 0x09, 0x09, 0x6e, 0x70, 0x78, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x70, 0x6e, + 0x67, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x67, + 0x69, 0x66, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, + 0x6a, 0x70, 0x67, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x76, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, 0x62, + 0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x77, 0x62, 0x6d, 0x70, 0x0a, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x69, 0x66, + 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x69, 0x66, 0x0a, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x2f, 0x77, 0x65, 0x62, 0x70, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x77, 0x65, 0x62, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x78, 0x2d, 0x33, 0x64, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x33, 0x64, + 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x63, 0x6d, + 0x75, 0x2d, 0x72, 0x61, 0x73, 0x74, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09, + 0x72, 0x61, 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, + 0x63, 0x6d, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x78, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x66, 0x72, 0x65, 0x65, + 0x68, 0x61, 0x6e, 0x64, 0x09, 0x09, 0x09, 0x09, 0x66, 0x68, 0x20, 0x66, + 0x68, 0x63, 0x20, 0x66, 0x68, 0x34, 0x20, 0x66, 0x68, 0x35, 0x20, 0x66, + 0x68, 0x37, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, + 0x63, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x63, 0x6f, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x6d, 0x72, 0x73, 0x69, + 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09, 0x09, 0x09, 0x73, + 0x69, 0x64, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, + 0x63, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63, 0x78, 0x0a, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x69, 0x63, 0x74, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x70, 0x69, 0x63, 0x20, 0x70, 0x63, 0x74, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x61, 0x6e, 0x79, 0x6d, 0x61, 0x70, 0x09, + 0x09, 0x09, 0x09, 0x70, 0x6e, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09, 0x70, 0x62, + 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x67, 0x72, 0x61, 0x79, 0x6d, + 0x61, 0x70, 0x09, 0x09, 0x09, 0x70, 0x67, 0x6d, 0x0a, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x70, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, + 0x72, 0x67, 0x62, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x67, 0x62, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x74, 0x67, 0x61, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x74, 0x67, 0x61, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x78, 0x62, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x78, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x78, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x64, + 0x75, 0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x78, 0x77, 0x64, 0x0a, 0x23, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x63, 0x70, 0x69, + 0x6d, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, + 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x2d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x2d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2d, 0x62, 0x6f, 0x64, 0x79, 0x0a, 0x23, 0x20, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x23, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d, 0x64, 0x65, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x79, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x0a, 0x23, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x69, 0x6d, 0x64, + 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x0a, 0x23, 0x20, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x72, + 0x66, 0x63, 0x38, 0x32, 0x32, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6d, + 0x6c, 0x20, 0x6d, 0x69, 0x6d, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x0a, + 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x69, + 0x70, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, + 0x73, 0x69, 0x70, 0x66, 0x72, 0x61, 0x67, 0x0a, 0x23, 0x20, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x0a, 0x23, 0x20, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x69, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x0a, 0x23, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x69, 0x67, 0x65, 0x73, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x69, 0x67, 0x73, 0x20, 0x69, 0x67, 0x65, 0x73, 0x0a, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x6d, 0x73, 0x68, 0x20, 0x6d, 0x65, 0x73, 0x68, 0x20, + 0x73, 0x69, 0x6c, 0x6f, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x64, 0x61, 0x2b, 0x78, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x65, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x77, 0x66, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x64, 0x77, 0x66, 0x0a, 0x23, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x61, 0x74, + 0x6c, 0x61, 0x6e, 0x64, 0x2e, 0x33, 0x64, 0x6d, 0x6c, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x64, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x67, 0x64, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x73, 0x2d, 0x67, + 0x64, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x67, 0x73, 0x2e, 0x67, 0x64, 0x6c, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x74, 0x77, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x67, 0x74, 0x77, 0x0a, 0x23, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x6d, 0x6c, + 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x74, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x74, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x76, 0x74, 0x75, 0x09, 0x09, 0x09, 0x09, 0x09, 0x76, + 0x74, 0x75, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x72, 0x6d, + 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x72, 0x6c, 0x20, 0x76, 0x72, + 0x6d, 0x6c, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33, 0x64, + 0x2b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x09, 0x09, 0x09, 0x09, 0x78, + 0x33, 0x64, 0x62, 0x20, 0x78, 0x33, 0x64, 0x62, 0x7a, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33, 0x64, 0x2b, 0x76, 0x72, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x33, 0x64, 0x76, 0x20, 0x78, 0x33, + 0x64, 0x76, 0x7a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33, + 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x33, + 0x64, 0x20, 0x78, 0x33, 0x64, 0x7a, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x61, 0x6c, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x62, 0x79, 0x74, 0x65, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, + 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x0a, 0x23, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x61, 0x72, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2d, + 0x73, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x61, 0x72, 0x74, 0x2f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x0a, 0x23, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x70, 0x61, + 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, + 0x72, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x23, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x61, 0x72, 0x74, 0x2f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2d, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x31, 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, + 0x61, 0x76, 0x65, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, + 0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x2d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x09, 0x09, + 0x09, 0x09, 0x61, 0x70, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x0a, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x63, 0x73, 0x20, 0x69, 0x66, 0x62, + 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x63, 0x73, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, + 0x73, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x73, 0x76, 0x0a, 0x23, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x64, + 0x6e, 0x73, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x63, + 0x6d, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, + 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x66, + 0x77, 0x64, 0x72, 0x65, 0x64, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, + 0x74, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x74, 0x6d, 0x6c, + 0x20, 0x68, 0x74, 0x6d, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x6e, 0x33, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + 0x6e, 0x33, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x61, + 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x74, + 0x78, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, + 0x20, 0x64, 0x65, 0x66, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6c, 0x6f, + 0x67, 0x20, 0x69, 0x6e, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x70, 0x72, 0x73, 0x2e, 0x66, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x73, 0x74, + 0x65, 0x69, 0x6e, 0x2e, 0x72, 0x73, 0x74, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x74, + 0x61, 0x67, 0x09, 0x09, 0x09, 0x09, 0x64, 0x73, 0x63, 0x0a, 0x23, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x2d, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x0a, 0x23, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x72, 0x65, 0x64, 0x0a, 0x23, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x72, 0x66, 0x63, 0x38, 0x32, 0x32, 0x2d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x72, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61, 0x65, 0x73, 0x63, + 0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x72, 0x74, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x73, 0x67, 0x6d, + 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x67, 0x6d, 0x6c, 0x20, 0x73, + 0x67, 0x6d, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x31, + 0x34, 0x30, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x61, 0x62, 0x2d, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x09, 0x09, 0x09, 0x74, 0x73, 0x76, 0x0a, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x74, 0x72, 0x6f, 0x66, 0x66, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x74, 0x20, 0x74, 0x72, 0x20, 0x72, 0x6f, 0x66, 0x66, 0x20, + 0x6d, 0x61, 0x6e, 0x20, 0x6d, 0x65, 0x20, 0x6d, 0x73, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x74, 0x75, 0x72, 0x74, 0x6c, 0x65, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x74, 0x74, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x75, 0x72, 0x69, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x75, 0x72, 0x69, 0x20, 0x75, 0x72, 0x69, 0x73, 0x20, 0x75, + 0x72, 0x6c, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x63, 0x61, + 0x72, 0x64, 0x09, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x61, 0x72, 0x64, + 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x61, 0x62, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x75, + 0x72, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x64, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x64, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x73, 0x63, + 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x63, 0x75, 0x72, 0x6c, + 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, + 0x72, 0x6c, 0x2e, 0x6d, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, + 0x6d, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6d, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x73, 0x75, 0x62, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x09, 0x73, 0x75, 0x62, + 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x65, 0x73, 0x6d, 0x65, 0x72, 0x74, 0x65, 0x63, 0x2e, 0x74, 0x68, 0x65, + 0x6d, 0x65, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, + 0x6c, 0x79, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x79, 0x0a, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6d, 0x69, 0x2e, + 0x66, 0x6c, 0x65, 0x78, 0x73, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x09, + 0x66, 0x6c, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x76, 0x69, 0x7a, 0x09, 0x09, 0x09, + 0x09, 0x67, 0x76, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x69, 0x6e, 0x33, 0x64, 0x2e, 0x33, 0x64, 0x6d, 0x6c, 0x09, 0x09, + 0x09, 0x09, 0x33, 0x64, 0x6d, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x33, 0x64, 0x2e, 0x73, 0x70, 0x6f, + 0x74, 0x09, 0x09, 0x09, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x0a, 0x23, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, + 0x63, 0x2e, 0x6e, 0x65, 0x77, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, + 0x2e, 0x6e, 0x69, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x78, 0x2d, 0x7a, + 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x72, 0x65, 0x66, + 0x6c, 0x65, 0x78, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x32, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0a, 0x23, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x69, + 0x2e, 0x75, 0x72, 0x69, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75, + 0x65, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x75, 0x6e, 0x2e, 0x6a, 0x32, 0x6d, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2d, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x09, 0x09, + 0x6a, 0x61, 0x64, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x65, 0x63, 0x68, + 0x2e, 0x6c, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x74, 0x0a, 0x23, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, + 0x2e, 0x73, 0x69, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, + 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x73, 0x6c, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, + 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, + 0x6d, 0x6c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x09, + 0x77, 0x6d, 0x6c, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, + 0x61, 0x73, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x20, 0x61, 0x73, + 0x6d, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x63, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x63, 0x20, 0x63, 0x63, 0x20, 0x63, 0x78, 0x78, 0x20, + 0x63, 0x70, 0x70, 0x20, 0x68, 0x20, 0x68, 0x68, 0x20, 0x64, 0x69, 0x63, + 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x72, 0x74, + 0x72, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x66, 0x37, 0x37, 0x20, 0x66, 0x39, 0x30, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6a, 0x61, 0x76, 0x61, 0x2d, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x61, 0x76, 0x61, + 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6f, 0x70, 0x6d, 0x6c, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x70, 0x6d, 0x6c, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x70, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x70, 0x20, 0x70, 0x61, 0x73, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6e, 0x66, 0x6f, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x6e, 0x66, 0x6f, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, + 0x73, 0x65, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65, + 0x74, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x73, 0x66, + 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x66, 0x76, 0x0a, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x75, 0x75, 0x65, 0x6e, 0x63, 0x6f, 0x64, + 0x65, 0x09, 0x09, 0x09, 0x09, 0x09, 0x75, 0x75, 0x0a, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x78, 0x2d, 0x76, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, + 0x72, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x73, 0x0a, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x78, 0x2d, 0x76, 0x63, 0x61, 0x72, 0x64, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x76, 0x63, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x78, 0x6d, 0x6c, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2d, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x31, + 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x33, 0x67, 0x70, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x2d, 0x74, 0x74, 0x0a, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x32, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x33, 0x67, 0x32, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2f, 0x62, 0x6d, 0x70, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x62, 0x74, 0x36, 0x35, 0x36, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x63, 0x65, 0x6c, 0x62, 0x0a, + 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x64, 0x76, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, + 0x31, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x32, 0x36, 0x31, 0x0a, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x33, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x68, 0x32, 0x36, 0x33, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x33, 0x2d, 0x31, 0x39, 0x39, 0x38, + 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, + 0x33, 0x2d, 0x32, 0x30, 0x30, 0x30, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x68, 0x32, 0x36, 0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x32, + 0x36, 0x34, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, + 0x32, 0x36, 0x34, 0x2d, 0x72, 0x63, 0x64, 0x6f, 0x0a, 0x23, 0x20, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x34, 0x2d, 0x73, 0x76, + 0x63, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x65, 0x67, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x67, 0x76, 0x0a, 0x23, 0x20, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0x32, 0x30, + 0x30, 0x30, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x6d, + 0x09, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x6d, 0x20, 0x6a, 0x70, 0x67, + 0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x6a, 0x32, 0x09, + 0x09, 0x09, 0x09, 0x09, 0x6d, 0x6a, 0x32, 0x20, 0x6d, 0x6a, 0x70, 0x32, + 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x31, + 0x73, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, + 0x32, 0x70, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, + 0x70, 0x32, 0x74, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, + 0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x34, 0x20, 0x6d, 0x70, + 0x34, 0x76, 0x20, 0x6d, 0x70, 0x67, 0x34, 0x0a, 0x23, 0x20, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x76, 0x2d, 0x65, 0x73, 0x0a, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x09, 0x09, + 0x09, 0x09, 0x09, 0x6d, 0x70, 0x65, 0x67, 0x20, 0x6d, 0x70, 0x67, 0x20, + 0x6d, 0x70, 0x65, 0x20, 0x6d, 0x31, 0x76, 0x20, 0x6d, 0x32, 0x76, 0x0a, + 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67, + 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0a, 0x23, 0x20, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x76, 0x0a, 0x23, 0x20, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6e, 0x76, 0x0a, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2f, 0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, + 0x67, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x70, + 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, 0x23, 0x20, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x71, 0x75, 0x69, 0x63, 0x6b, + 0x74, 0x69, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09, 0x09, 0x71, 0x74, 0x20, + 0x6d, 0x6f, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x72, 0x61, 0x77, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61, 0x65, 0x73, 0x63, + 0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x73, 0x6d, 0x70, 0x74, 0x65, 0x32, 0x39, 0x32, 0x6d, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, + 0x63, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x63, + 0x31, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x63, 0x63, 0x74, 0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x68, 0x64, + 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x68, 0x20, 0x75, 0x76, 0x76, 0x68, + 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x65, 0x63, 0x65, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x09, 0x09, + 0x09, 0x09, 0x75, 0x76, 0x6d, 0x20, 0x75, 0x76, 0x76, 0x6d, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x65, 0x63, 0x65, 0x2e, 0x6d, 0x70, 0x34, 0x0a, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x70, + 0x64, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x70, 0x20, 0x75, 0x76, 0x76, + 0x70, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x64, 0x65, 0x63, 0x65, 0x2e, 0x73, 0x64, 0x09, 0x09, 0x09, 0x09, 0x75, + 0x76, 0x73, 0x20, 0x75, 0x76, 0x76, 0x73, 0x0a, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x76, 0x20, + 0x75, 0x76, 0x76, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x76, + 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x76, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x2d, 0x74, 0x74, 0x73, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x6c, 0x6e, 0x61, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x2d, 0x74, 0x74, 0x73, + 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, + 0x76, 0x62, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x09, 0x64, + 0x76, 0x62, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x66, 0x76, 0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x76, 0x74, + 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x68, 0x6e, 0x73, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, + 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x31, 0x64, 0x70, + 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x2d, 0x31, 0x30, 0x31, + 0x30, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, + 0x31, 0x64, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x2d, + 0x32, 0x30, 0x30, 0x35, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, + 0x75, 0x6d, 0x2e, 0x32, 0x64, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, + 0x65, 0x63, 0x2d, 0x31, 0x30, 0x31, 0x30, 0x0a, 0x23, 0x20, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, + 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x32, 0x64, 0x70, 0x61, 0x72, 0x69, + 0x74, 0x79, 0x66, 0x65, 0x63, 0x2d, 0x32, 0x30, 0x30, 0x35, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, + 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x74, 0x74, 0x73, + 0x61, 0x76, 0x63, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, + 0x6d, 0x2e, 0x74, 0x74, 0x73, 0x6d, 0x70, 0x65, 0x67, 0x32, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, + 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, + 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x70, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09, + 0x09, 0x09, 0x09, 0x6d, 0x78, 0x75, 0x20, 0x6d, 0x34, 0x75, 0x0a, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, + 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x2e, 0x70, 0x79, 0x76, 0x09, 0x09, 0x70, 0x79, 0x76, + 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, + 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6c, 0x65, 0x61, 0x76, 0x65, 0x64, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x76, 0x6f, 0x69, 0x70, 0x0a, 0x23, 0x20, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0a, 0x23, 0x20, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, + 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x31, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x34, 0x0a, + 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, + 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x73, 0x77, 0x66, 0x0a, 0x23, + 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, + 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x73, + 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x6d, 0x6f, 0x76, 0x0a, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x76, + 0x76, 0x75, 0x2e, 0x6d, 0x70, 0x34, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, + 0x75, 0x20, 0x75, 0x76, 0x76, 0x75, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x76, 0x6f, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x76, 0x69, 0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x77, 0x65, 0x62, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x65, 0x62, + 0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x66, 0x34, + 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x34, 0x76, 0x0a, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x66, 0x6c, 0x69, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x66, 0x6c, 0x69, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x78, 0x2d, 0x66, 0x6c, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x6c, + 0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x34, + 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x34, 0x76, 0x0a, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, + 0x6b, 0x61, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x6b, 0x76, 0x20, 0x6d, 0x6b, + 0x33, 0x64, 0x20, 0x6d, 0x6b, 0x73, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2f, 0x78, 0x2d, 0x6d, 0x6e, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, + 0x6e, 0x67, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, + 0x73, 0x2d, 0x61, 0x73, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x73, + 0x66, 0x20, 0x61, 0x73, 0x78, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, + 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x76, 0x6f, 0x62, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x76, 0x6f, 0x62, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, + 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, + 0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, + 0x2d, 0x77, 0x6d, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x76, + 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, + 0x77, 0x6d, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x78, 0x0a, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77, + 0x76, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x76, 0x78, 0x0a, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x76, 0x69, 0x0a, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x73, 0x67, 0x69, 0x2d, 0x6d, + 0x6f, 0x76, 0x69, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x76, 0x69, + 0x65, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x73, 0x6d, + 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6d, 0x76, 0x0a, 0x78, 0x2d, + 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2f, 0x78, + 0x2d, 0x63, 0x6f, 0x6f, 0x6c, 0x74, 0x61, 0x6c, 0x6b, 0x09, 0x09, 0x09, + 0x09, 0x69, 0x63, 0x65, 0x0a +}; +static unsigned int mime_types_len = 53009; diff --git a/libs/tgl/src/mtproto-client.c b/libs/tgl/src/mtproto-client.c new file mode 100644 index 0000000000..37530b5afb --- /dev/null +++ b/libs/tgl/src/mtproto-client.c @@ -0,0 +1,1489 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Nikolay Durov, Andrey Lopatin 2012-2013 + Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#include +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#else +#include +#include +#include +#include +#include +#include +#endif +#include +#if defined(__FreeBSD__) || defined(__OpenBSD__) +#include +#endif +#include +#include +#include +#include +#include + +//#include "telegram.h" +#include "queries.h" +//#include "loop.h" +#include "tgl-structures.h" +#include "tgl-binlog.h" +#include "auto.h" +#include "auto/auto-types.h" +#include "auto/auto-skip.h" +#include "tgl.h" +#include "mtproto-client.h" +#include "tools.h" +#include "tree.h" +#include "updates.h" +#include "mtproto-utils.h" +#include "auto.h" +#include "tgl-methods-in.h" + +#if defined(__FreeBSD__) +#define __builtin_bswap32(x) bswap32(x) +#endif + +#if defined(__OpenBSD__) +#define __builtin_bswap32(x) __swap32gen(x) +#endif + +#define sha1 SHA1 + +#include "mtproto-common.h" + +#define MAX_NET_RES (1L << 16) +//extern int log_level; + +static long long generate_next_msg_id (struct tgl_state *TLS, struct tgl_dc *DC, struct tgl_session *S); +static double get_server_time (struct tgl_dc *DC); + +#if !defined(HAVE___BUILTIN_BSWAP32) && !defined(__FreeBSD__) && !defined(__OpenBSD__) +static inline unsigned __builtin_bswap32(unsigned x) { + return ((x << 24) & 0xff000000 ) | + ((x << 8) & 0x00ff0000 ) | + ((x >> 8) & 0x0000ff00 ) | + ((x >> 24) & 0x000000ff ); +} +#endif + +// for statistic only +static int total_packets_sent; +static long long total_data_sent; + + +static int rpc_execute (struct tgl_state *TLS, struct connection *c, int op, int len); +static int rpc_becomes_ready (struct tgl_state *TLS, struct connection *c); +static int rpc_close (struct tgl_state *TLS, struct connection *c); + +static double get_utime (int clock_id) { + struct timespec T; + tgl_my_clock_gettime (clock_id, &T); + return T.tv_sec + (double) T.tv_nsec * 1e-9; +} + + +#define MAX_RESPONSE_SIZE (1L << 24) + +static RSA *rsa_load_public_key (struct tgl_state *TLS, const char *public_key_name) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + FILE * f = NULL; + errno_t err = fopen_s(&f, public_key_name, "r"); + if (err != 0) { +#else + FILE *f = fopen (public_key_name, "r"); + if (f == NULL) { +#endif + vlogprintf (E_WARNING, "Couldn't open public key file: %s\n", public_key_name); + return NULL; + } + RSA *res = PEM_read_RSAPublicKey (f, NULL, NULL, NULL); + fclose (f); + if (res == NULL) { + vlogprintf (E_WARNING, "PEM_read_RSAPublicKey returns NULL.\n"); + return NULL; + } + + vlogprintf (E_NOTICE, "public key '%s' loaded successfully\n", public_key_name); + + return res; +} + + + + +/* + * + * UNAUTHORIZED (DH KEY EXCHANGE) PROTOCOL PART + * + */ + +#define ENCRYPT_BUFFER_INTS 16384 +static int encrypt_buffer[ENCRYPT_BUFFER_INTS]; + +#define DECRYPT_BUFFER_INTS 16384 +static int decrypt_buffer[ENCRYPT_BUFFER_INTS]; + +static int encrypt_packet_buffer (struct tgl_state *TLS, struct tgl_dc *DC) { + RSA *key = TLS->rsa_key_loaded[DC->rsa_key_idx]; + return tgl_pad_rsa_encrypt (TLS, (char *) packet_buffer, (packet_ptr - packet_buffer) * 4, (char *) encrypt_buffer, ENCRYPT_BUFFER_INTS * 4, key->n, key->e); +} + +static int encrypt_packet_buffer_aes_unauth (const char server_nonce[16], const char hidden_client_nonce[32]) { + tgl_init_aes_unauth (server_nonce, hidden_client_nonce, AES_ENCRYPT); + return tgl_pad_aes_encrypt ((char *) packet_buffer, (packet_ptr - packet_buffer) * 4, (char *) encrypt_buffer, ENCRYPT_BUFFER_INTS * 4); +} + +// +// Used in unauthorized part of protocol +// +static int rpc_send_packet (struct tgl_state *TLS, struct connection *c) { + static struct { + long long auth_key_id; + long long out_msg_id; + int msg_len; + } unenc_msg_header; + + int len = (packet_ptr - packet_buffer) * 4; + TLS->net_methods->incr_out_packet_num (c); + + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + struct tgl_session *S = TLS->net_methods->get_session (c); + + unenc_msg_header.out_msg_id = generate_next_msg_id (TLS, DC, S); + unenc_msg_header.msg_len = len; + + int total_len = len + 20; + assert (total_len > 0 && !(total_len & 0xfc000003)); + total_len >>= 2; + vlogprintf (E_DEBUG, "writing packet: total_len = %d, len = %d\n", total_len, len); + if (total_len < 0x7f) { + assert (TLS->net_methods->write_out (c, &total_len, 1) == 1); + } else { + total_len = (total_len << 8) | 0x7f; + assert (TLS->net_methods->write_out (c, &total_len, 4) == 4); + } + TLS->net_methods->write_out (c, &unenc_msg_header, 20); + TLS->net_methods->write_out (c, packet_buffer, len); + TLS->net_methods->flush_out (c); + + total_packets_sent ++; + total_data_sent += total_len; + return 1; +} + +static int rpc_send_message (struct tgl_state *TLS, struct connection *c, void *data, int len) { + assert (len > 0 && !(len & 0xfc000003)); + + int total_len = len >> 2; + if (total_len < 0x7f) { + assert (TLS->net_methods->write_out (c, &total_len, 1) == 1); + } else { + total_len = (total_len << 8) | 0x7f; + assert (TLS->net_methods->write_out (c, &total_len, 4) == 4); + } + + TLS->net_methods->incr_out_packet_num (c); + assert (TLS->net_methods->write_out (c, data, len) == len); + TLS->net_methods->flush_out (c); + + total_packets_sent ++; + total_data_sent += total_len; + return 1; +} + +// +// State machine. See description at +// https://core.telegram.org/mtproto/auth_key +// + + +static int check_unauthorized_header (struct tgl_state *TLS) { + long long auth_key_id = fetch_long (); + if (auth_key_id) { + vlogprintf (E_ERROR, "ERROR: auth_key_id should be NULL\n"); + return -1; + } + fetch_long (); // msg_id + int len = fetch_int (); + if (len != 4 * (in_end - in_ptr)) { + vlogprintf (E_ERROR, "ERROR: length mismatch\n"); + return -1; + } + return 0; +} + +/* {{{ REQ_PQ */ +// req_pq#60469778 nonce:int128 = ResPQ +static int send_req_pq_packet (struct tgl_state *TLS, struct connection *c) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + assert (DC->state == st_init); + + tglt_secure_random (DC->nonce, 16); + clear_packet (); + out_int (CODE_req_pq); + out_ints ((int *)DC->nonce, 4); + rpc_send_packet (TLS, c); + + DC->state = st_reqpq_sent; + return 1; +} + +// req_pq#60469778 nonce:int128 = ResPQ +static int send_req_pq_temp_packet (struct tgl_state *TLS, struct connection *c) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + assert (DC->state == st_authorized); + + tglt_secure_random (DC->nonce, 16); + clear_packet (); + out_int (CODE_req_pq); + out_ints ((int *)DC->nonce, 4); + rpc_send_packet (TLS, c); + + DC->state = st_reqpq_sent_temp; + return 1; +} +/* }}} */ + +/* {{{ REQ DH */ +// req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params; +// p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data; +// p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data; +static void send_req_dh_packet (struct tgl_state *TLS, struct connection *c, BIGNUM *pq, int temp_key) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + BIGNUM *p = BN_new (); + BIGNUM *q = BN_new (); + assert (bn_factorize (pq, p, q) >= 0); + + clear_packet (); + packet_ptr += 5; + out_int (temp_key ? CODE_p_q_inner_data_temp : CODE_p_q_inner_data); + + out_bignum (pq); + out_bignum (p); + out_bignum (q); + + out_ints ((int *) DC->nonce, 4); + out_ints ((int *) DC->server_nonce, 4); + tglt_secure_random (DC->new_nonce, 32); + out_ints ((int *) DC->new_nonce, 8); + if (temp_key) { + out_int (TLS->temp_key_expire_time); + } + sha1 ((unsigned char *) (packet_buffer + 5), (packet_ptr - packet_buffer - 5) * 4, (unsigned char *) packet_buffer); + + int l = encrypt_packet_buffer (TLS, DC); + + clear_packet (); + out_int (CODE_req_DH_params); + out_ints ((int *) DC->nonce, 4); + out_ints ((int *) DC->server_nonce, 4); + out_bignum (p); + out_bignum (q); + + out_long (TLS->rsa_key_fingerprint[DC->rsa_key_idx]); + out_cstring ((char *) encrypt_buffer, l); + + BN_free (p); + BN_free (q); + DC->state = temp_key ? st_reqdh_sent_temp : st_reqdh_sent; + rpc_send_packet (TLS, c); +} +/* }}} */ + +/* {{{ SEND DH PARAMS */ +// set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer; +// client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data +static void send_dh_params (struct tgl_state *TLS, struct connection *c, BIGNUM *dh_prime, BIGNUM *g_a, int g, int temp_key) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + clear_packet (); + packet_ptr += 5; + out_int (CODE_client_DH_inner_data); + out_ints ((int *) DC->nonce, 4); + out_ints ((int *) DC->server_nonce, 4); + out_long (0); + + BIGNUM *dh_g = BN_new (); + ensure (BN_set_word (dh_g, g)); + + static unsigned char s_power[256]; + tglt_secure_random (s_power, 256); + BIGNUM *dh_power = BN_bin2bn ((unsigned char *)s_power, 256, 0); + ensure_ptr (dh_power); + + BIGNUM *y = BN_new (); + ensure_ptr (y); + ensure (BN_mod_exp (y, dh_g, dh_power, dh_prime, TLS->BN_ctx)); + out_bignum (y); + BN_free (y); + + BIGNUM *auth_key_num = BN_new (); + ensure (BN_mod_exp (auth_key_num, g_a, dh_power, dh_prime, TLS->BN_ctx)); + int l = BN_num_bytes (auth_key_num); + assert (l >= 250 && l <= 256); + assert (BN_bn2bin (auth_key_num, (unsigned char *)(temp_key ? DC->temp_auth_key : DC->auth_key))); + if (l < 256) { + char *key = temp_key ? DC->temp_auth_key : DC->auth_key; + memmove (key + 256 - l, key, l); + memset (key, 0, 256 - l); + } + + BN_free (dh_power); + BN_free (auth_key_num); + BN_free (dh_g); + + sha1 ((unsigned char *) (packet_buffer + 5), (packet_ptr - packet_buffer - 5) * 4, (unsigned char *) packet_buffer); + + l = encrypt_packet_buffer_aes_unauth (DC->server_nonce, DC->new_nonce); + + clear_packet (); + out_int (CODE_set_client_DH_params); + out_ints ((int *) DC->nonce, 4); + out_ints ((int *) DC->server_nonce, 4); + out_cstring ((char *) encrypt_buffer, l); + + DC->state = temp_key ? st_client_dh_sent_temp : st_client_dh_sent;; + rpc_send_packet (TLS, c); +} +/* }}} */ + +/* {{{ RECV RESPQ */ +// resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector long = ResPQ +static int process_respq_answer (struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key) { + assert (!(len & 3)); + in_ptr = (int *)packet; + in_end = in_ptr + (len / 4); + if (check_unauthorized_header (TLS) < 0) { + return -1; + } + + int *in_save = in_ptr; + if (skip_type_any (TYPE_TO_PARAM (res_p_q)) < 0 || in_ptr != in_end) { + vlogprintf (E_ERROR, "can not parse req_p_q answer\n"); + return -1; + } + in_ptr = in_save; + + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + assert (fetch_int() == CODE_res_p_q); + + static int tmp[4]; + fetch_ints (tmp, 4); + if (memcmp (tmp, DC->nonce, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + fetch_ints (DC->server_nonce, 4); + + BIGNUM *pq = BN_new (); + assert (fetch_bignum (pq) >= 0); + + assert (fetch_int () == CODE_vector); + int fingerprints_num = fetch_int (); + assert (fingerprints_num >= 0); + DC->rsa_key_idx = -1; + + int i; + for (i = 0; i < fingerprints_num; i++) { + int j; + long long fprint = fetch_long (); + for (j = 0; j < TLS->rsa_key_num; j++) { + if (TLS->rsa_key_loaded[j]) { + if (fprint == TLS->rsa_key_fingerprint[j]) { + DC->rsa_key_idx = j; + break; + } + } + } + } + assert (in_ptr == in_end); + if (DC->rsa_key_idx == -1) { + vlogprintf (E_ERROR, "fatal: don't have any matching keys\n"); + return -1; + } + + send_req_dh_packet (TLS, c, pq, temp_key); + + BN_free (pq); + return 1; +} +/* }}} */ + +/* {{{ RECV DH */ +// server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params; +// server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params; +// server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data; +static int process_dh_answer (struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key) { + assert (!(len & 3)); + in_ptr = (int *)packet; + in_end = in_ptr + (len / 4); + if (check_unauthorized_header (TLS) < 0) { + return -1; + } + + int *in_save = in_ptr; + if (skip_type_any (TYPE_TO_PARAM (server_d_h_params)) < 0 || in_ptr != in_end) { + vlogprintf (E_ERROR, "can not parse server_DH_params answer\n"); + return -1; + } + in_ptr = in_save; + + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + unsigned op = fetch_int (); + assert (op == CODE_server__d_h_params_ok || op == CODE_server__d_h_params_fail); + + int tmp[4]; + fetch_ints (tmp, 4); + if (memcmp (tmp, DC->nonce, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + assert (!memcmp (tmp, DC->nonce, 16)); + fetch_ints (tmp, 4); + if (memcmp (tmp, DC->server_nonce, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + assert (!memcmp (tmp, DC->server_nonce, 16)); + + if (op == CODE_server__d_h_params_fail) { + vlogprintf (E_ERROR, "DH params fail\n"); + return -1; + } + + tgl_init_aes_unauth (DC->server_nonce, DC->new_nonce, AES_DECRYPT); + + int l = prefetch_strlen (); + assert (l >= 0); + if (!l) { + vlogprintf (E_ERROR, "non-empty encrypted part expected\n"); + return -1; + } + l = tgl_pad_aes_decrypt (fetch_str (l), l, (char *) decrypt_buffer, DECRYPT_BUFFER_INTS * 4 - 16); + assert (in_ptr == in_end); + + in_ptr = decrypt_buffer + 5; + in_end = decrypt_buffer + (l >> 2); + if (skip_type_any (TYPE_TO_PARAM (server_d_h_inner_data)) < 0) { + vlogprintf (E_ERROR, "can not parse server_DH_inner_data answer\n"); + return -1; + } + in_ptr = decrypt_buffer + 5; + + assert (fetch_int () == (int)CODE_server_DH_inner_data); + fetch_ints (tmp, 4); + if (memcmp (tmp, DC->nonce, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + assert (!memcmp (tmp, DC->nonce, 16)); + fetch_ints (tmp, 4); + if (memcmp (tmp, DC->server_nonce, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + assert (!memcmp (tmp, DC->server_nonce, 16)); + int g = fetch_int (); + + BIGNUM *dh_prime = BN_new (); + BIGNUM *g_a = BN_new (); + assert (fetch_bignum (dh_prime) > 0); + assert (fetch_bignum (g_a) > 0); + + if (tglmp_check_DH_params (TLS, dh_prime, g) < 0) { + vlogprintf (E_ERROR, "bad DH params\n"); + return -1; + } + if (tglmp_check_g_a (TLS, dh_prime, g_a) < 0) { + vlogprintf (E_ERROR, "bad dh_prime\n"); + return -1; + } + + int server_time = fetch_int (); + assert (in_ptr <= in_end); + + static char sha1_buffer[20]; + sha1 ((unsigned char *) decrypt_buffer + 20, (in_ptr - decrypt_buffer - 5) * 4, (unsigned char *) sha1_buffer); + if (memcmp (decrypt_buffer, sha1_buffer, 20)) { + vlogprintf (E_ERROR, "bad encrypted message SHA1\n"); + return -1; + } + if ((char *) in_end - (char *) in_ptr >= 16) { + vlogprintf (E_ERROR, "too much padding\n"); + return -1; + } + + DC->server_time_delta = server_time - get_utime (CLOCK_REALTIME); + DC->server_time_udelta = server_time - get_utime (CLOCK_MONOTONIC); + + send_dh_params (TLS, c, dh_prime, g_a, g, temp_key); + + BN_free (dh_prime); + BN_free (g_a); + + return 1; +} +/* }}} */ + +static void create_temp_auth_key (struct tgl_state *TLS, struct connection *c) { + assert (TLS->enable_pfs); + send_req_pq_temp_packet (TLS, c); +} + +int tglmp_encrypt_inner_temp (struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int useful, void *data, long long msg_id); +static long long msg_id_override; +static void mpc_on_get_config (struct tgl_state *TLS, void *extra, int success); +static void bind_temp_auth_key (struct tgl_state *TLS, struct connection *c); + +/* {{{ RECV AUTH COMPLETE */ + +// dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer; +// dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer; +// dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer; +static int process_auth_complete (struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + assert (!(len & 3)); + in_ptr = (int *)packet; + in_end = in_ptr + (len / 4); + if (check_unauthorized_header (TLS) < 0) { + return -1; + } + + int *in_save = in_ptr; + if (skip_type_any (TYPE_TO_PARAM (set_client_d_h_params_answer)) < 0 || in_ptr != in_end) { + vlogprintf (E_ERROR, "can not parse server_DH_params answer\n"); + return -1; + } + in_ptr = in_save; + + unsigned op = fetch_int (); + assert (op == CODE_dh_gen_ok || op == CODE_dh_gen_retry || op == CODE_dh_gen_fail); + + int tmp[4]; + fetch_ints (tmp, 4); + if (memcmp (DC->nonce, tmp, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + fetch_ints (tmp, 4); + if (memcmp (DC->server_nonce, tmp, 16)) { + vlogprintf (E_ERROR, "nonce mismatch\n"); + return -1; + } + if (op != CODE_dh_gen_ok) { + vlogprintf (E_ERROR, "something bad. Retry regen\n"); + return -1; + } + + fetch_ints (tmp, 4); + + static unsigned char th[44], sha1_buffer[20]; + memcpy (th, DC->new_nonce, 32); + th[32] = 1; + if (!temp_key) { + sha1 ((unsigned char *)DC->auth_key, 256, sha1_buffer); + } else { + sha1 ((unsigned char *)DC->temp_auth_key, 256, sha1_buffer); + } + memcpy (th + 33, sha1_buffer, 8); + sha1 (th, 41, sha1_buffer); + if (memcmp (tmp, sha1_buffer + 4, 16)) { + vlogprintf (E_ERROR, "hash mismatch\n"); + return -1; + } + + if (!temp_key) { + bl_do_set_auth_key (TLS, DC->id, (unsigned char *)DC->auth_key); + sha1 ((unsigned char *)DC->auth_key, 256, sha1_buffer); + } else { + sha1 ((unsigned char *)DC->temp_auth_key, 256, sha1_buffer); + DC->temp_auth_key_id = *(long long *)(sha1_buffer + 12); + } + + DC->server_salt = *(long long *)DC->server_nonce ^ *(long long *)DC->new_nonce; + + DC->state = st_authorized; + + vlogprintf (E_DEBUG, "Auth success\n"); + if (temp_key) { + bind_temp_auth_key (TLS, c); + } else { + DC->flags |= 1; + if (TLS->enable_pfs) { + create_temp_auth_key (TLS, c); + } else { + DC->temp_auth_key_id = DC->auth_key_id; + memcpy (DC->temp_auth_key, DC->auth_key, 256); + DC->flags |= 2; + if (!(DC->flags & 4)) { + tgl_do_help_get_config_dc (TLS, DC, mpc_on_get_config, DC); + } + } + } + + return 1; +} +/* }}} */ + +static void bind_temp_auth_key (struct tgl_state *TLS, struct connection *c) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + if (DC->temp_auth_key_bind_query_id) { + tglq_query_delete (TLS, DC->temp_auth_key_bind_query_id); + } + struct tgl_session *S = TLS->net_methods->get_session (c); + long long msg_id = generate_next_msg_id (TLS, DC, S); + + clear_packet (); + out_int (CODE_bind_auth_key_inner); + long long rand; + tglt_secure_random (&rand, 8); + out_long (rand); + out_long (DC->temp_auth_key_id); + out_long (DC->auth_key_id); + + if (!S->session_id) { + tglt_secure_random (&S->session_id, 8); + } + out_long (S->session_id); + int expires = (int)time (0) + DC->server_time_delta + TLS->temp_key_expire_time; + out_int (expires); + + static int data[1000]; + int len = tglmp_encrypt_inner_temp (TLS, c, packet_buffer, packet_ptr - packet_buffer, 0, data, msg_id); + msg_id_override = msg_id; + DC->temp_auth_key_bind_query_id = msg_id; + tgl_do_send_bind_temp_key (TLS, DC, rand, expires, (void *)data, len, msg_id); + msg_id_override = 0; +} + +/* + * + * AUTHORIZED (MAIN) PROTOCOL PART + * + */ + +static struct encrypted_message enc_msg; + +static double get_server_time (struct tgl_dc *DC) { + //if (!DC->server_time_udelta) { + // DC->server_time_udelta = get_utime (CLOCK_REALTIME) - get_utime (CLOCK_MONOTONIC); + //} + return get_utime (CLOCK_MONOTONIC) + DC->server_time_udelta; +} + +static long long generate_next_msg_id (struct tgl_state *TLS, struct tgl_dc *DC, struct tgl_session *S) { + long long next_id = (long long) (get_server_time (DC) * (1LL << 32)) & -4; + if (next_id <= S->last_msg_id) { + next_id = S->last_msg_id += 4; + } else { + S->last_msg_id = next_id; + } + return next_id; +} + +static void init_enc_msg (struct tgl_state *TLS, struct tgl_session *S, int useful) { + struct tgl_dc *DC = S->dc; + assert (DC->state == st_authorized); + assert (DC->temp_auth_key_id); + vlogprintf (E_DEBUG, "temp_auth_key_id = 0x%016llx, auth_key_id = 0x%016llx\n", DC->temp_auth_key_id, DC->auth_key_id); + enc_msg.auth_key_id = DC->temp_auth_key_id; + enc_msg.server_salt = DC->server_salt; + if (!S->session_id) { + tglt_secure_random (&S->session_id, 8); + } + enc_msg.session_id = S->session_id; + enc_msg.msg_id = msg_id_override ? msg_id_override : generate_next_msg_id (TLS, DC, S); + enc_msg.seq_no = S->seq_no; + if (useful) { + enc_msg.seq_no |= 1; + } + S->seq_no += 2; +}; + +static void init_enc_msg_inner_temp (struct tgl_dc *DC, long long msg_id) { + enc_msg.auth_key_id = DC->auth_key_id; + tglt_secure_random (&enc_msg.server_salt, 8); + tglt_secure_random (&enc_msg.session_id, 8); + enc_msg.msg_id = msg_id; + enc_msg.seq_no = 0; +}; + + +static int aes_encrypt_message (struct tgl_state *TLS, char *key, struct encrypted_message *enc) { + unsigned char sha1_buffer[20]; + const int MINSZ = offsetof (struct encrypted_message, message); + const int UNENCSZ = offsetof (struct encrypted_message, server_salt); + + int enc_len = (MINSZ - UNENCSZ) + enc->msg_len; + assert (enc->msg_len >= 0 && enc->msg_len <= MAX_MESSAGE_INTS * 4 - 16 && !(enc->msg_len & 3)); + sha1 ((unsigned char *) &enc->server_salt, enc_len, sha1_buffer); + vlogprintf (E_DEBUG, "sending message with sha1 %08x\n", *(int *)sha1_buffer); + memcpy (enc->msg_key, sha1_buffer + 4, 16); + tgl_init_aes_auth (key, enc->msg_key, AES_ENCRYPT); + return tgl_pad_aes_encrypt ((char *) &enc->server_salt, enc_len, (char *) &enc->server_salt, MAX_MESSAGE_INTS * 4 + (MINSZ - UNENCSZ)); +} + +long long tglmp_encrypt_send_message (struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int flags) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + struct tgl_session *S = TLS->net_methods->get_session (c); + assert (S); + if (!(DC->flags & 4) && !(flags & 2)) { + return generate_next_msg_id (TLS, DC, S); + } + + const int UNENCSZ = offsetof (struct encrypted_message, server_salt); + if (msg_ints <= 0 || msg_ints > MAX_MESSAGE_INTS - 4) { + return -1; + } + if (msg) { + memcpy (enc_msg.message, msg, msg_ints * 4); + enc_msg.msg_len = msg_ints * 4; + } else { + if ((enc_msg.msg_len & 0x80000003) || enc_msg.msg_len > MAX_MESSAGE_INTS * 4 - 16) { + return -1; + } + } + init_enc_msg (TLS, S, flags & 1); + + int l = aes_encrypt_message (TLS, DC->temp_auth_key, &enc_msg); + assert (l > 0); + rpc_send_message (TLS, c, &enc_msg, l + UNENCSZ); + + return S->last_msg_id; +} + +int tglmp_encrypt_inner_temp (struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int useful, void *data, long long msg_id) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + struct tgl_session *S = TLS->net_methods->get_session (c); + assert (S); + + const int UNENCSZ = offsetof (struct encrypted_message, server_salt); + if (msg_ints <= 0 || msg_ints > MAX_MESSAGE_INTS - 4) { + return -1; + } + memcpy (enc_msg.message, msg, msg_ints * 4); + enc_msg.msg_len = msg_ints * 4; + + init_enc_msg_inner_temp (DC, msg_id); + + int l = aes_encrypt_message (TLS, DC->auth_key, &enc_msg); + assert (l > 0); + //rpc_send_message (c, &enc_msg, l + UNENCSZ); + memcpy (data, &enc_msg, l + UNENCSZ); + + return l + UNENCSZ; +} + +static int rpc_execute_answer (struct tgl_state *TLS, struct connection *c, long long msg_id); + +static int work_container (struct tgl_state *TLS, struct connection *c, long long msg_id) { + vlogprintf (E_DEBUG, "work_container: msg_id = %"_PRINTF_INT64_"d\n", msg_id); + assert (fetch_int () == CODE_msg_container); + int n = fetch_int (); + int i; + for (i = 0; i < n; i++) { + long long id = fetch_long (); + //int seqno = fetch_int (); + fetch_int (); // seq_no + if (id & 1) { + tgln_insert_msg_id (TLS, TLS->net_methods->get_session (c), id); + } + int bytes = fetch_int (); + int *t = in_end; + in_end = in_ptr + (bytes / 4); + int r = rpc_execute_answer (TLS, c, id); + if (r < 0) { return -1; } + assert (in_ptr == in_end); + in_end = t; + } + return 0; +} + +static int work_new_session_created (struct tgl_state *TLS, struct connection *c, long long msg_id) { + vlogprintf (E_DEBUG, "work_new_session_created: msg_id = %"_PRINTF_INT64_"d\n", msg_id); + assert (fetch_int () == (int)CODE_new_session_created); + fetch_long (); // first message id + fetch_long (); // unique_id + TLS->net_methods->get_dc (c)->server_salt = fetch_long (); + if (TLS->started && !(TLS->locks & TGL_LOCK_DIFF) && (TLS->DC_working->flags & TGLDCF_LOGGED_IN)) { + tgl_do_get_difference (TLS, 0, 0, 0); + } + return 0; +} + +static int work_msgs_ack (struct tgl_state *TLS, struct connection *c, long long msg_id) { + vlogprintf (E_DEBUG, "work_msgs_ack: msg_id = %"_PRINTF_INT64_"d\n", msg_id); + assert (fetch_int () == CODE_msgs_ack); + assert (fetch_int () == CODE_vector); + int n = fetch_int (); + int i; + for (i = 0; i < n; i++) { + long long id = fetch_long (); + vlogprintf (E_DEBUG + 1, "ack for %"_PRINTF_INT64_"d\n", id); + tglq_query_ack (TLS, id); + } + return 0; +} + +static int work_rpc_result (struct tgl_state *TLS, struct connection *c, long long msg_id) { + vlogprintf (E_DEBUG, "work_rpc_result: msg_id = %"_PRINTF_INT64_"d\n", msg_id); + assert (fetch_int () == (int)CODE_rpc_result); + long long id = fetch_long (); + int op = prefetch_int (); + if (op == CODE_rpc_error) { + return tglq_query_error (TLS, id); + } else { + return tglq_query_result (TLS, id); + } +} + +#define MAX_PACKED_SIZE (1 << 24) +static int work_packed (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == CODE_gzip_packed); + static int in_gzip; + static int buf[MAX_PACKED_SIZE >> 2]; + assert (!in_gzip); + in_gzip = 1; + + int l = prefetch_strlen (); + char *s = fetch_str (l); + + int total_out = tgl_inflate (s, l, buf, MAX_PACKED_SIZE); + int *end = in_ptr; + int *eend = in_end; + //assert (total_out % 4 == 0); + in_ptr = buf; + in_end = in_ptr + total_out / 4; + int r = rpc_execute_answer (TLS, c, msg_id); + in_ptr = end; + in_end = eend; + in_gzip = 0; + return r; +} + +static int work_bad_server_salt (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == (int)CODE_bad_server_salt); + long long id = fetch_long (); + tglq_query_restart (TLS, id); + fetch_int (); // seq_no + fetch_int (); // error_code + long long new_server_salt = fetch_long (); + TLS->net_methods->get_dc (c)->server_salt = new_server_salt; + return 0; +} + +static int work_pong (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == CODE_pong); + fetch_long (); // msg_id + fetch_long (); // ping_id + return 0; +} + +static int work_detailed_info (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == CODE_msg_detailed_info); + fetch_long (); // msg_id + fetch_long (); // answer_msg_id + fetch_int (); // bytes + fetch_int (); // status + return 0; +} + +static int work_new_detailed_info (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == (int)CODE_msg_new_detailed_info); + fetch_long (); // answer_msg_id + fetch_int (); // bytes + fetch_int (); // status + return 0; +} + +static int work_bad_msg_notification (struct tgl_state *TLS, struct connection *c, long long msg_id) { + assert (fetch_int () == (int)CODE_bad_msg_notification); + long long m1 = fetch_long (); + int s = fetch_int (); + int e = fetch_int (); + vlogprintf (E_NOTICE, "bad_msg_notification: msg_id = %"_PRINTF_INT64_"d, seq = %d, error = %d\n", m1, s, e); + switch (e) { + // Too low msg id + case 16: + tglq_regen_query (TLS, m1); + break; + // Too high msg id + case 17: + tglq_regen_query (TLS, m1); + break; + default: + vlogprintf (E_NOTICE, "bad_msg_notification: msg_id = %"_PRINTF_INT64_"d, seq = %d, error = %d\n", m1, s, e); + break; + } + + return -1; +} + +static int rpc_execute_answer (struct tgl_state *TLS, struct connection *c, long long msg_id) { + int op = prefetch_int (); + switch (op) { + case CODE_msg_container: + return work_container (TLS, c, msg_id); + case CODE_new_session_created: + return work_new_session_created (TLS, c, msg_id); + case CODE_msgs_ack: + return work_msgs_ack (TLS, c, msg_id); + case CODE_rpc_result: + return work_rpc_result (TLS, c, msg_id); + case CODE_update_short: + case CODE_updates: + case CODE_update_short_message: + case CODE_update_short_chat_message: + case CODE_updates_too_long: + tglu_work_any_updates (TLS); + return 0; + case CODE_gzip_packed: + return work_packed (TLS, c, msg_id); + case CODE_bad_server_salt: + return work_bad_server_salt (TLS, c, msg_id); + case CODE_pong: + return work_pong (TLS, c, msg_id); + case CODE_msg_detailed_info: + return work_detailed_info (TLS, c, msg_id); + case CODE_msg_new_detailed_info: + return work_new_detailed_info (TLS, c, msg_id); + case CODE_bad_msg_notification: + return work_bad_msg_notification (TLS, c, msg_id); + } + vlogprintf (E_WARNING, "Unknown message: %08x\n", op); + in_ptr = in_end; // Will not fail due to assertion in_ptr == in_end + return 0; +} + +static struct mtproto_methods mtproto_methods; +void tgls_free_session (struct tgl_state *TLS, struct tgl_session *S); +/* +static char *get_ipv6 (struct tgl_state *TLS, int num) { + static char res[1<< 10]; + if (TLS->test_mode) { + switch (num) { + case 1: + strcpy (res, TG_SERVER_TEST_IPV6_1); + break; + case 2: + strcpy (res, TG_SERVER_TEST_IPV6_2); + break; + case 3: + strcpy (res, TG_SERVER_TEST_IPV6_3); + break; + default: + assert (0); + } + } else { + switch (num) { + case 1: + strcpy (res, TG_SERVER_IPV6_1); + break; + case 2: + strcpy (res, TG_SERVER_IPV6_2); + break; + case 3: + strcpy (res, TG_SERVER_IPV6_3); + break; + case 4: + strcpy (res, TG_SERVER_IPV6_4); + break; + case 5: + strcpy (res, TG_SERVER_IPV6_5); + break; + default: + assert (0); + } + } + return res; +} +*/ + +static void create_session_connect (struct tgl_state *TLS, struct tgl_session *S) { + struct tgl_dc *DC = S->dc; + + if (TLS->ipv6_enabled) { + S->c = TLS->net_methods->create_connection (TLS, DC->options[1]->ip, DC->options[1]->port, S, DC, &mtproto_methods); + } else { + S->c = TLS->net_methods->create_connection (TLS, DC->options[0]->ip, DC->options[0]->port, S, DC, &mtproto_methods); + } +} + +static void fail_connection (struct tgl_state *TLS, struct connection *c) { + struct tgl_session *S = TLS->net_methods->get_session (c); + TLS->net_methods->free (c); + create_session_connect (TLS, S); +} + +static void fail_session (struct tgl_state *TLS, struct tgl_session *S) { + vlogprintf (E_NOTICE, "failing session %"_PRINTF_INT64_"d\n", S->session_id); + struct tgl_dc *DC = S->dc; + tgls_free_session (TLS, S); + DC->sessions[0] = NULL; + tglmp_dc_create_session (TLS, DC); +} + +static int process_rpc_message (struct tgl_state *TLS, struct connection *c, struct encrypted_message *enc, int len) { + const int MINSZ = offsetof (struct encrypted_message, message); + const int UNENCSZ = offsetof (struct encrypted_message, server_salt); + vlogprintf (E_DEBUG, "process_rpc_message(), len=%d\n", len); + if (len < MINSZ || (len & 15) != (UNENCSZ & 15)) { + vlogprintf (E_WARNING, "Incorrect packet from server. Closing connection\n"); + fail_connection (TLS, c); + return -1; + } + assert (len >= MINSZ && (len & 15) == (UNENCSZ & 15)); + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + if (enc->auth_key_id != DC->temp_auth_key_id && enc->auth_key_id != DC->auth_key_id) { + vlogprintf (E_WARNING, "received msg from dc %d with auth_key_id %"_PRINTF_INT64_"d (perm_auth_key_id %"_PRINTF_INT64_"d temp_auth_key_id %"_PRINTF_INT64_"d). Dropping\n", + DC->id, enc->auth_key_id, DC->auth_key_id, DC->temp_auth_key_id); + return 0; + } + if (enc->auth_key_id == DC->temp_auth_key_id) { + assert (enc->auth_key_id == DC->temp_auth_key_id); + assert (DC->temp_auth_key_id); + tgl_init_aes_auth (DC->temp_auth_key + 8, enc->msg_key, AES_DECRYPT); + } else { + assert (enc->auth_key_id == DC->auth_key_id); + assert (DC->auth_key_id); + tgl_init_aes_auth (DC->auth_key + 8, enc->msg_key, AES_DECRYPT); + } + + int l = tgl_pad_aes_decrypt ((char *)&enc->server_salt, len - UNENCSZ, (char *)&enc->server_salt, len - UNENCSZ); + assert (l == len - UNENCSZ); + + if (!(!(enc->msg_len & 3) && enc->msg_len > 0 && enc->msg_len <= len - MINSZ && len - MINSZ - enc->msg_len <= 12)) { + vlogprintf (E_WARNING, "Incorrect packet from server. Closing connection\n"); + fail_connection (TLS, c); + return -1; + } + assert (!(enc->msg_len & 3) && enc->msg_len > 0 && enc->msg_len <= len - MINSZ && len - MINSZ - enc->msg_len <= 12); + + struct tgl_session *S = TLS->net_methods->get_session (c); + if (!S || S->session_id != enc->session_id) { + vlogprintf (E_WARNING, "Message to bad session. Drop.\n"); + return 0; + } + + static unsigned char sha1_buffer[20]; + sha1 ((void *)&enc->server_salt, enc->msg_len + (MINSZ - UNENCSZ), sha1_buffer); + if (memcmp (&enc->msg_key, sha1_buffer + 4, 16)) { + vlogprintf (E_WARNING, "Incorrect packet from server. Closing connection\n"); + fail_connection (TLS, c); + return -1; + } + assert (!memcmp (&enc->msg_key, sha1_buffer + 4, 16)); + + int this_server_time = enc->msg_id >> 32LL; + if (!S->received_messages) { + DC->server_time_delta = this_server_time - get_utime (CLOCK_REALTIME); + if (DC->server_time_udelta) { + vlogprintf (E_WARNING, "adjusting CLOCK_MONOTONIC delta to %lf\n", + DC->server_time_udelta - this_server_time + get_utime (CLOCK_MONOTONIC)); + } + DC->server_time_udelta = this_server_time - get_utime (CLOCK_MONOTONIC); + } + + double st = get_server_time (DC); + if (this_server_time < st - 300 || this_server_time > st + 30) { + vlogprintf (E_WARNING, "bad msg time: salt = %"_PRINTF_INT64_"d, session_id = %"_PRINTF_INT64_"d, msg_id = %"_PRINTF_INT64_"d, seq_no = %d, st = %lf, now = %lf\n", enc->server_salt, enc->session_id, enc->msg_id, enc->seq_no, st, get_utime (CLOCK_REALTIME)); + fail_session (TLS, S); + return -1; + } + S->received_messages ++; + + if (DC->server_salt != enc->server_salt) { + DC->server_salt = enc->server_salt; + } + + assert (this_server_time >= st - 300 && this_server_time <= st + 30); + //assert (enc->msg_id > server_last_msg_id && (enc->msg_id & 3) == 1); + vlogprintf (E_DEBUG, "received mesage id %016llx\n", enc->msg_id); + //server_last_msg_id = enc->msg_id; + + //*(long long *)(longpoll_query + 3) = *(long long *)((char *)(&enc->msg_id) + 0x3c); + //*(long long *)(longpoll_query + 5) = *(long long *)((char *)(&enc->msg_id) + 0x3c); + + assert (l >= (MINSZ - UNENCSZ) + 8); + //assert (enc->message[0] == CODE_rpc_result && *(long long *)(enc->message + 1) == client_last_msg_id); + + in_ptr = enc->message; + in_end = in_ptr + (enc->msg_len / 4); + + if (enc->msg_id & 1) { + tgln_insert_msg_id (TLS, S, enc->msg_id); + } + assert (S->session_id == enc->session_id); + + if (rpc_execute_answer (TLS, c, enc->msg_id) < 0) { + fail_session (TLS, S); + return -1; + } + assert (in_ptr == in_end); + return 0; +} + + +static int rpc_execute (struct tgl_state *TLS, struct connection *c, int op, int len) { + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + + if (len >= MAX_RESPONSE_SIZE/* - 12*/ || len < 0/*12*/) { + vlogprintf (E_WARNING, "answer too long (%d bytes), skipping\n", len); + return 0; + } + + int Response_len = len; + + static char Response[MAX_RESPONSE_SIZE]; + vlogprintf (E_DEBUG, "Response_len = %d\n", Response_len); + assert (TLS->net_methods->read_in (c, Response, Response_len) == Response_len); + +#if !defined(WIN32) || !defined(_WIN32) + setsockopt(c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]) { 0 }, 4); +#endif +#if !defined(__MACH__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined (__CYGWIN__) +// setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); +#endif + int o = DC->state; + //if (DC->flags & 1) { o = st_authorized;} + if (o != st_authorized) { + vlogprintf (E_DEBUG, "%s: state = %d\n", __func__, o); + } + switch (o) { + case st_reqpq_sent: + process_respq_answer (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0); + return 0; + case st_reqdh_sent: + process_dh_answer (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0); + return 0; + case st_client_dh_sent: + process_auth_complete (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0); + return 0; + case st_reqpq_sent_temp: + process_respq_answer (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1); + return 0; + case st_reqdh_sent_temp: + process_dh_answer (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1); + return 0; + case st_client_dh_sent_temp: + process_auth_complete (TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1); + return 0; + case st_authorized: + if (op < 0 && op >= -999) { + vlogprintf (E_WARNING, "Server error %d\n", op); + } else { + return process_rpc_message (TLS, c, (void *)(Response/* + 8*/), Response_len/* - 12*/); + } + return 0; + default: + vlogprintf (E_ERROR, "fatal: cannot receive answer in state %d\n", DC->state); + exit (2); + } + + return 0; +} + + +static int tc_close (struct tgl_state *TLS, struct connection *c, int who) { + vlogprintf (E_DEBUG, "outbound rpc connection from dc #%d : closing by %d\n", TLS->net_methods->get_dc(c)->id, who); + return 0; +} + +static void mpc_on_get_config (struct tgl_state *TLS, void *extra, int success) { + assert (success); + struct tgl_dc *DC = extra; + DC->flags |= 4; +} + +static int tc_becomes_ready (struct tgl_state *TLS, struct connection *c) { + vlogprintf (E_NOTICE, "outbound rpc connection from dc #%d becomed ready\n", TLS->net_methods->get_dc(c)->id); + //char byte = 0xef; + //assert (TLS->net_methods->write_out (c, &byte, 1) == 1); + //TLS->net_methods->flush_out (c); + + struct tgl_dc *DC = TLS->net_methods->get_dc (c); + if (DC->flags & 1) { DC->state = st_authorized; } + int o = DC->state; + if (o == st_authorized && !TLS->enable_pfs) { + DC->temp_auth_key_id = DC->auth_key_id; + memcpy (DC->temp_auth_key, DC->auth_key, 256); + DC->flags |= 2; + } + switch (o) { + case st_init: + send_req_pq_packet (TLS, c); + break; + case st_authorized: + if (!(DC->flags & 2)) { + assert (TLS->enable_pfs); + if (!DC->temp_auth_key_id) { + assert (!DC->temp_auth_key_id); + create_temp_auth_key (TLS, c); + } else { + bind_temp_auth_key (TLS, c); + } + } else if (!(DC->flags & 4)) { + tgl_do_help_get_config_dc (TLS, DC, mpc_on_get_config, DC); + } + break; + default: + vlogprintf (E_DEBUG, "c_state = %d\n", DC->state); + DC->state = st_init; // previous connection was reset + send_req_pq_packet (TLS, c); + break; + } + return 0; +} + +static int rpc_becomes_ready (struct tgl_state *TLS, struct connection *c) { + return tc_becomes_ready (TLS, c); +} + +static int rpc_close (struct tgl_state *TLS, struct connection *c) { + return tc_close (TLS, c, 0); +} + + +#define RANDSEED_PASSWORD_FILENAME NULL +#define RANDSEED_PASSWORD_LENGTH 0 +void tglmp_on_start (struct tgl_state *TLS) { + tgl_prng_seed (TLS, RANDSEED_PASSWORD_FILENAME, RANDSEED_PASSWORD_LENGTH); + + int i; + int ok = 0; + for (i = 0; i < TLS->rsa_key_num; i++) { + char *key = TLS->rsa_key_list[i]; + RSA *res = rsa_load_public_key (TLS, key); + if (!res) { + vlogprintf (E_WARNING, "Can not load key %s\n", key); + TLS->rsa_key_loaded[i] = NULL; + } else { + ok = 1; + TLS->rsa_key_loaded[i] = res; + TLS->rsa_key_fingerprint[i] = tgl_do_compute_rsa_key_fingerprint (res); + } + } + + if (!ok) { + vlogprintf (E_ERROR, "No public keys found\n"); + exit (1); + } +} + +void tgl_dc_authorize (struct tgl_state *TLS, struct tgl_dc *DC) { + //c_state = 0; + if (!DC->sessions[0]) { + tglmp_dc_create_session (TLS, DC); + } + vlogprintf (E_DEBUG, "Starting authorization for DC #%d\n", DC->id); + //net_loop (0, auth_ok); +} + +#define long_cmp(a,b) ((a) > (b) ? 1 : (a) == (b) ? 0 : -1) +DEFINE_TREE(long,long long,long_cmp,0) + +static int send_all_acks (struct tgl_state *TLS, struct tgl_session *S) { + clear_packet (); + out_int (CODE_msgs_ack); + out_int (CODE_vector); + out_int (tree_count_long (S->ack_tree)); + while (S->ack_tree) { + long long x = tree_get_min_long (S->ack_tree); + out_long (x); + S->ack_tree = tree_delete_long (S->ack_tree, x); + } + tglmp_encrypt_send_message (TLS, S->c, packet_buffer, packet_ptr - packet_buffer, 0); + return 0; +} + +static void send_all_acks_gateway (struct tgl_state *TLS, void *arg) { + send_all_acks (TLS, arg); +} + + +void tgln_insert_msg_id (struct tgl_state *TLS, struct tgl_session *S, long long id) { + if (!S->ack_tree) { + TLS->timer_methods->insert (S->ev, ACK_TIMEOUT); + } + if (!tree_lookup_long (S->ack_tree, id)) { + S->ack_tree = tree_insert_long (S->ack_tree, id, lrand48 ()); + } +} + +//extern struct tgl_dc *DC_list[]; + + +static void regen_temp_key_gw (struct tgl_state *TLS, void *arg) { + tglmp_regenerate_temp_auth_key (TLS, arg); +} + +struct tgl_dc *tglmp_alloc_dc (struct tgl_state *TLS, int flags, int id, char *ip, int port) { + //assert (!TLS->DC_list[id]); + + if (!TLS->DC_list[id]) { + struct tgl_dc *DC = talloc0 (sizeof (*DC)); + DC->id = id; + TLS->DC_list[id] = DC; + if (id > TLS->max_dc_num) { + TLS->max_dc_num = id; + } + DC->ev = TLS->timer_methods->alloc (TLS, regen_temp_key_gw, DC); + TLS->timer_methods->insert (DC->ev, 0); + } + + struct tgl_dc *DC = TLS->DC_list[id]; + + struct tgl_dc_option *O = DC->options[flags & 3]; + + struct tgl_dc_option *O2 = O; + while (O2) { + if (!strcmp (O2->ip, ip)) { + tfree_str (ip); + return DC; + } + O2 = O2->next; + } + + struct tgl_dc_option *T = talloc (sizeof (*T)); + T->ip = ip; + T->port = port; + T->next = O; + DC->options[flags & 3] = T; + + + return DC; +} + +static struct mtproto_methods mtproto_methods = { + .execute = rpc_execute, + .ready = rpc_becomes_ready, + .close = rpc_close +}; + +void tglmp_dc_create_session (struct tgl_state *TLS, struct tgl_dc *DC) { + struct tgl_session *S = talloc0 (sizeof (*S)); + assert (RAND_pseudo_bytes ((unsigned char *) &S->session_id, 8) >= 0); + S->dc = DC; + //S->c = TLS->net_methods->create_connection (TLS, DC->ip, DC->port, S, DC, &mtproto_methods); + + create_session_connect (TLS, S); + S->ev = TLS->timer_methods->alloc (TLS, send_all_acks_gateway, S); + assert (!DC->sessions[0]); + DC->sessions[0] = S; +} + +void tgl_do_send_ping (struct tgl_state *TLS, struct connection *c) { + int x[3]; + x[0] = CODE_ping; + *(long long *)(x + 1) = lrand48 () * (1ll << 32) + lrand48 (); + tglmp_encrypt_send_message (TLS, c, x, 3, 0); +} + +void tgl_dc_iterator (struct tgl_state *TLS, void (*iterator)(struct tgl_dc *DC)) { + int i; + for (i = 0; i <= TLS->max_dc_num; i++) { + iterator (TLS->DC_list[i]); + } +} + +void tgl_dc_iterator_ex (struct tgl_state *TLS, void (*iterator)(struct tgl_dc *DC, void *extra), void *extra) { + int i; + for (i = 0; i <= TLS->max_dc_num; i++) { + iterator (TLS->DC_list[i], extra); + } +} + + +void tglmp_regenerate_temp_auth_key (struct tgl_state *TLS, struct tgl_dc *DC) { + DC->flags &= ~6; + DC->temp_auth_key_id = 0; + memset (DC->temp_auth_key, 0, 256); + + if (!DC->sessions[0]) { + tgl_dc_authorize (TLS, DC); + return; + } + + + struct tgl_session *S = DC->sessions[0]; + tglt_secure_random (&S->session_id, 8); + S->seq_no = 0; + + TLS->timer_methods->remove (S->ev); + S->ack_tree = tree_clear_long (S->ack_tree); + + if (DC->state != st_authorized) { + return; + } + + if (S->c) { + create_temp_auth_key (TLS, S->c); + } +} + +void tgls_free_session (struct tgl_state *TLS, struct tgl_session *S) { + S->ack_tree = tree_clear_long (S->ack_tree); + if (S->ev) { TLS->timer_methods->free (S->ev); } + if (S->c) { + TLS->net_methods->free (S->c); + } + tfree (S, sizeof (*S)); +} + +void tgls_free_dc (struct tgl_state *TLS, struct tgl_dc *DC) { + //if (DC->ip) { tfree_str (DC->ip); } + + struct tgl_session *S = DC->sessions[0]; + if (S) { tgls_free_session (TLS, S); } + + if (DC->ev) { TLS->timer_methods->free (DC->ev); } + tfree (DC, sizeof (*DC)); +} + +void tgls_free_pubkey (struct tgl_state *TLS) { + int i; + for (i = 0; i < TLS->rsa_key_num; i++) { + if (TLS->rsa_key_loaded[i]) { + RSA_free (TLS->rsa_key_loaded[i]); + TLS->rsa_key_loaded[i] = NULL; + } + } +} diff --git a/libs/tgl/src/mtproto-client.h b/libs/tgl/src/mtproto-client.h new file mode 100644 index 0000000000..13a98fd406 --- /dev/null +++ b/libs/tgl/src/mtproto-client.h @@ -0,0 +1,61 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Nikolay Durov, Andrey Lopatin 2012-2013 + Vitaly Valtman 2013-2015 +*/ +#ifndef __MTPROTO_CLIENT_H__ +#define __MTPROTO_CLIENT_H__ +//#include "net.h" +#include +//void on_start (void); +//..long long encrypt_send_message (struct connection *c, int *msg, int msg_ints, int useful); +//void dc_authorize (struct tgl_dc *DC); +//void work_update (struct connection *c, long long msg_id); +//void work_update_binlog (void); +//int check_g (unsigned char p[256], BIGNUM *g); +//int check_g_bn (BIGNUM *p, BIGNUM *g); +//int check_DH_params (BIGNUM *p, int g); +//void secure_random (void *s, int l); + +#include "tgl.h" + +struct connection; +struct tgl_dc; +//#include "queries.h" +#define TG_APP_HASH "844584f2b1fd2daecee726166dcc1ef8" +#define TG_APP_ID 10534 + +#define ACK_TIMEOUT 1 +#define MAX_DC_ID 10 + +struct connection; + +long long tglmp_encrypt_send_message (struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int flags); +void tglmp_dc_create_session (struct tgl_state *TLS, struct tgl_dc *DC); +//int tglmp_check_g (struct tgl_state *TLS, unsigned char p[256], BIGNUM *g); +//int tglmp_check_DH_params (struct tgl_state *TLS, BIGNUM *p, int g); +struct tgl_dc *tglmp_alloc_dc (struct tgl_state *TLS, int flags, int id, char *ip, int port); +void tglmp_regenerate_temp_auth_key (struct tgl_state *TLS, struct tgl_dc *D); + +void tgln_insert_msg_id (struct tgl_state *TLS, struct tgl_session *S, long long id); +void tglmp_on_start (struct tgl_state *TLS); +void tgl_dc_authorize (struct tgl_state *TLS, struct tgl_dc *DC); +void tgls_free_dc (struct tgl_state *TLS, struct tgl_dc *DC); +void tgls_free_pubkey (struct tgl_state *TLS); +void tgl_do_send_ping (struct tgl_state *TLS, struct connection *c); +#endif diff --git a/libs/tgl/src/mtproto-common.c b/libs/tgl/src/mtproto-common.c new file mode 100644 index 0000000000..32a9597639 --- /dev/null +++ b/libs/tgl/src/mtproto-common.c @@ -0,0 +1,475 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Nikolay Durov, Andrey Lopatin 2012-2013 + Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _FILE_OFFSET_BITS 64 + +#include +#include +#include +#include +#ifdef _MSC_VER +#include +#include +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#include +#include +#include "tgl.h" +#elif defined(__MINGW32__) +#include "tgl.h" ++#include +#include +#else +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mtproto-common.h" +#include "tools.h" + +#ifdef __MACH__ +#include +#include +#endif + + +static int __packet_buffer[PACKET_BUFFER_SIZE + 16]; +int *tgl_packet_ptr; +int *tgl_packet_buffer = __packet_buffer + 16; + +static long long rsa_encrypted_chunks, rsa_decrypted_chunks; + +//int verbosity; + +static int get_random_bytes (struct tgl_state *TLS, unsigned char *buf, int n) { +#if defined(WIN32) || defined(_WIN32) + if (RAND_bytes(buf, n) != 1) + return 0; + + vlogprintf(E_DEBUG, "added %d bytes of real entropy to secure random numbers seed\n", n); + *(long *)buf ^= lrand48(); + srand48(*(long *)buf); + return n; +#else + int r = 0, h = open ("/dev/random", O_RDONLY | O_NONBLOCK); + if (h >= 0) { + r = read (h, buf, n); + if (r > 0) { + vlogprintf (E_DEBUG, "added %d bytes of real entropy to secure random numbers seed\n", r); + } else { + r = 0; + } + close (h); + } + + if (r < n) { + h = open ("/dev/urandom", O_RDONLY); + if (h < 0) { + return r; + } + int s = read (h, buf + r, n - r); + close (h); + if (s > 0) { + r += s; + } + } + + if (r >= (int) sizeof (long)) { + *(long *)buf ^= lrand48 (); + srand48 (*(long *)buf); + } + + return r; +#endif +} + + +/* RDTSC */ +#ifdef _MSC_VER +#define HAVE_RDTSC +#pragma intrinsic(__rdtsc) +static __inline unsigned long long rdtsc(void) { + return __rdtsc(); +} + +inline DWORD getppid() { + HANDLE hSnapshot = INVALID_HANDLE_VALUE; + PROCESSENTRY32 pe32; + DWORD ppid = 0, pid = GetCurrentProcessId(); + + hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + __try { + if (hSnapshot == INVALID_HANDLE_VALUE) __leave; + ZeroMemory(&pe32, sizeof(pe32)); + pe32.dwSize = sizeof(pe32); + if (!Process32First(hSnapshot, &pe32)) __leave; + + do { + if (pe32.th32ProcessID == pid) { + ppid = pe32.th32ParentProcessID; + break; + } + } while (Process32Next(hSnapshot, &pe32)); + + } + __finally { + if (hSnapshot != INVALID_HANDLE_VALUE) CloseHandle(hSnapshot); + } + return ppid; +} + +#elif defined(__i386__) +#define HAVE_RDTSC +static __inline__ unsigned long long rdtsc (void) { + unsigned long long int x; + __asm__ volatile ("rdtsc" : "=A" (x)); + return x; +} +#elif defined(__x86_64__) +#define HAVE_RDTSC +static __inline__ unsigned long long rdtsc (void) { + unsigned hi, lo; + __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi)); + return ((unsigned long long) lo) | (((unsigned long long) hi) << 32); +} +#endif + +void tgl_prng_seed (struct tgl_state *TLS, const char *password_filename, int password_length) { + struct timespec T; + tgl_my_clock_gettime (CLOCK_REALTIME, &T); + RAND_add (&T, sizeof (T), 4.0); +#ifdef HAVE_RDTSC + unsigned long long r = rdtsc (); + RAND_add (&r, 8, 4.0); +#endif +#if defined(_MSC_VER) + DWORD p = GetCurrentProcessId (); +#else + unsigned short p = getpid (); +#endif + RAND_add (&p, sizeof (p), 0.0); + p = getppid (); + RAND_add (&p, sizeof (p), 0.0); + unsigned char rb[32]; + int s = get_random_bytes (TLS, rb, 32); + if (s > 0) { + RAND_add (rb, s, s); + } + memset (rb, 0, sizeof (rb)); + if (password_filename && password_length > 0) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + errno_t err = _sopen_s(&fd, password_filename, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); + if (err != 0) { + vlogprintf(E_WARNING, "Warning: fail to open password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno)); +#elif defined(WIN32) || defined(_WIN32) + int fd = open(password_filename, O_RDONLY | O_BINARY); + if (fd < 0) { + vlogprintf (E_WARNING, "Warning: fail to open password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno)); +#else + int fd = open (password_filename, O_RDONLY); + if (fd < 0) { + vlogprintf (E_WARNING, "Warning: fail to open password file - \"%s\", %m.\n", password_filename); +#endif + } else { + unsigned char *a = talloc0 (password_length); + int l = read (fd, a, password_length); + if (l < 0) { +#if defined(WIN32) || defined(_WIN32) + vlogprintf (E_WARNING, "Warning: fail to read password file - \"%s\", %s.\n", password_filename, GetErrnoStr (errno)); +#else + vlogprintf (E_WARNING, "Warning: fail to read password file - \"%s\", %m.\n", password_filename); +#endif + } else { + vlogprintf (E_DEBUG, "read %d bytes from password file.\n", l); + RAND_add (a, l, l); + } + close (fd); + tfree_secure (a, password_length); + } + } + TLS->BN_ctx = BN_CTX_new (); + ensure_ptr (TLS->BN_ctx); +} + +int tgl_serialize_bignum (BIGNUM *b, char *buffer, int maxlen) { + int itslen = BN_num_bytes (b); + int reqlen; + if (itslen < 254) { + reqlen = itslen + 1; + } else { + reqlen = itslen + 4; + } + int newlen = (reqlen + 3) & -4; + int pad = newlen - reqlen; + reqlen = newlen; + if (reqlen > maxlen) { + return -reqlen; + } + if (itslen < 254) { + *buffer++ = itslen; + } else { + *(int *)buffer = (itslen << 8) + 0xfe; + buffer += 4; + } + int l = BN_bn2bin (b, (unsigned char *)buffer); + assert (l == itslen); + buffer += l; + while (pad --> 0) { + *buffer++ = 0; + } + return reqlen; +} + + +long long tgl_do_compute_rsa_key_fingerprint (RSA *key) { + static char tempbuff[4096]; + static unsigned char sha[20]; + assert (key->n && key->e); + int l1 = tgl_serialize_bignum (key->n, tempbuff, 4096); + assert (l1 > 0); + int l2 = tgl_serialize_bignum (key->e, tempbuff + l1, 4096 - l1); + assert (l2 > 0 && l1 + l2 <= 4096); + SHA1 ((unsigned char *)tempbuff, l1 + l2, sha); + return *(long long *)(sha + 12); +} + +void tgl_out_cstring (const char *str, long len) { + assert (len >= 0 && len < (1 << 24)); + assert ((char *) packet_ptr + len + 8 < (char *) (packet_buffer + PACKET_BUFFER_SIZE)); + char *dest = (char *) packet_ptr; + if (len < 254) { + *dest++ = len; + } else { + *packet_ptr = (len << 8) + 0xfe; + dest += 4; + } + memcpy (dest, str, len); + dest += len; + while ((long) dest & 3) { + *dest++ = 0; + } + packet_ptr = (int *) dest; +} + +void tgl_out_cstring_careful (const char *str, long len) { + assert (len >= 0 && len < (1 << 24)); + assert ((char *) packet_ptr + len + 8 < (char *) (packet_buffer + PACKET_BUFFER_SIZE)); + char *dest = (char *) packet_ptr; + if (len < 254) { + dest++; + if (dest != str) { + memmove (dest, str, len); + } + dest[-1] = len; + } else { + dest += 4; + if (dest != str) { + memmove (dest, str, len); + } + *packet_ptr = (len << 8) + 0xfe; + } + dest += len; + while ((long) dest & 3) { + *dest++ = 0; + } + packet_ptr = (int *) dest; +} + + +void tgl_out_data (const void *data, long len) { + assert (len >= 0 && len < (1 << 24) && !(len & 3)); + assert ((char *) packet_ptr + len + 8 < (char *) (packet_buffer + PACKET_BUFFER_SIZE)); + memcpy (packet_ptr, data, len); + packet_ptr += len >> 2; +} + +int *tgl_in_ptr, *tgl_in_end; + +int tgl_fetch_bignum (BIGNUM *x) { + int l = prefetch_strlen (); + if (l < 0) { + return l; + } + char *str = fetch_str (l); + assert (BN_bin2bn ((unsigned char *) str, l, x) == x); + return l; +} + +int tgl_pad_rsa_encrypt (struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *E) { + int pad = (255000 - from_len - 32) % 255 + 32; + int chunks = (from_len + pad) / 255; + int bits = BN_num_bits (N); + assert (bits >= 2041 && bits <= 2048); + assert (from_len > 0 && from_len <= 2550); + assert (size >= chunks * 256); + assert (RAND_pseudo_bytes ((unsigned char *) from + from_len, pad) >= 0); + int i; + BIGNUM x, y; + BN_init (&x); + BN_init (&y); + rsa_encrypted_chunks += chunks; + for (i = 0; i < chunks; i++) { + BN_bin2bn ((unsigned char *) from, 255, &x); + assert (BN_mod_exp (&y, &x, E, N, TLS->BN_ctx) == 1); + unsigned l = 256 - BN_num_bytes (&y); + assert (l <= 256); + memset (to, 0, l); + BN_bn2bin (&y, (unsigned char *) to + l); + to += 256; + } + BN_free (&x); + BN_free (&y); + return chunks * 256; +} + +int tgl_pad_rsa_decrypt (struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *D) { + if (from_len < 0 || from_len > 0x1000 || (from_len & 0xff)) { + return -1; + } + int chunks = (from_len >> 8); + int bits = BN_num_bits (N); + assert (bits >= 2041 && bits <= 2048); + assert (size >= chunks * 255); + int i; + BIGNUM x, y; + BN_init (&x); + BN_init (&y); + for (i = 0; i < chunks; i++) { + ++rsa_decrypted_chunks; + BN_bin2bn ((unsigned char *) from, 256, &x); + assert (BN_mod_exp (&y, &x, D, N, TLS->BN_ctx) == 1); + int l = BN_num_bytes (&y); + if (l > 255) { + BN_free (&x); + BN_free (&y); + return -1; + } + assert (l >= 0 && l <= 255); + memset (to, 0, 255 - l); + BN_bn2bin (&y, (unsigned char *) to + 255 - l); + to += 255; + } + BN_free (&x); + BN_free (&y); + return chunks * 255; +} + +static unsigned char aes_key_raw[32], aes_iv[32]; +static AES_KEY aes_key; + +void tgl_init_aes_unauth (const char server_nonce[16], const char hidden_client_nonce[32], int encrypt) { + static unsigned char buffer[64], hash[20]; + memcpy (buffer, hidden_client_nonce, 32); + memcpy (buffer + 32, server_nonce, 16); + SHA1 (buffer, 48, aes_key_raw); + memcpy (buffer + 32, hidden_client_nonce, 32); + SHA1 (buffer, 64, aes_iv + 8); + memcpy (buffer, server_nonce, 16); + memcpy (buffer + 16, hidden_client_nonce, 32); + SHA1 (buffer, 48, hash); + memcpy (aes_key_raw + 20, hash, 12); + memcpy (aes_iv, hash + 12, 8); + memcpy (aes_iv + 28, hidden_client_nonce, 4); + if (encrypt == AES_ENCRYPT) { + AES_set_encrypt_key (aes_key_raw, 32*8, &aes_key); + } else { + AES_set_decrypt_key (aes_key_raw, 32*8, &aes_key); + } + memset (aes_key_raw, 0, sizeof (aes_key_raw)); +} + +void tgl_init_aes_auth (char auth_key[192], char msg_key[16], int encrypt) { + static unsigned char buffer[48], hash[20]; + // sha1_a = SHA1 (msg_key + substr (auth_key, 0, 32)); + // sha1_b = SHA1 (substr (auth_key, 32, 16) + msg_key + substr (auth_key, 48, 16)); + // sha1_с = SHA1 (substr (auth_key, 64, 32) + msg_key); + // sha1_d = SHA1 (msg_key + substr (auth_key, 96, 32)); + // aes_key = substr (sha1_a, 0, 8) + substr (sha1_b, 8, 12) + substr (sha1_c, 4, 12); + // aes_iv = substr (sha1_a, 8, 12) + substr (sha1_b, 0, 8) + substr (sha1_c, 16, 4) + substr (sha1_d, 0, 8); + memcpy (buffer, msg_key, 16); + memcpy (buffer + 16, auth_key, 32); + SHA1 (buffer, 48, hash); + memcpy (aes_key_raw, hash, 8); + memcpy (aes_iv, hash + 8, 12); + + memcpy (buffer, auth_key + 32, 16); + memcpy (buffer + 16, msg_key, 16); + memcpy (buffer + 32, auth_key + 48, 16); + SHA1 (buffer, 48, hash); + memcpy (aes_key_raw + 8, hash + 8, 12); + memcpy (aes_iv + 12, hash, 8); + + memcpy (buffer, auth_key + 64, 32); + memcpy (buffer + 32, msg_key, 16); + SHA1 (buffer, 48, hash); + memcpy (aes_key_raw + 20, hash + 4, 12); + memcpy (aes_iv + 20, hash + 16, 4); + + memcpy (buffer, msg_key, 16); + memcpy (buffer + 16, auth_key + 96, 32); + SHA1 (buffer, 48, hash); + memcpy (aes_iv + 24, hash, 8); + + if (encrypt == AES_ENCRYPT) { + AES_set_encrypt_key (aes_key_raw, 32*8, &aes_key); + } else { + AES_set_decrypt_key (aes_key_raw, 32*8, &aes_key); + } + memset (aes_key_raw, 0, sizeof (aes_key_raw)); +} + +int tgl_pad_aes_encrypt (char *from, int from_len, char *to, int size) { + int padded_size = (from_len + 15) & -16; + assert (from_len > 0 && padded_size <= size); + if (from_len < padded_size) { + assert (RAND_pseudo_bytes ((unsigned char *) from + from_len, padded_size - from_len) >= 0); + } + AES_ige_encrypt ((unsigned char *) from, (unsigned char *) to, padded_size, &aes_key, aes_iv, AES_ENCRYPT); + return padded_size; +} + +int tgl_pad_aes_decrypt (char *from, int from_len, char *to, int size) { + if (from_len <= 0 || from_len > size || (from_len & 15)) { + return -1; + } + AES_ige_encrypt ((unsigned char *) from, (unsigned char *) to, from_len, &aes_key, aes_iv, AES_DECRYPT); + return from_len; +} + + diff --git a/libs/tgl/src/mtproto-common.h b/libs/tgl/src/mtproto-common.h new file mode 100644 index 0000000000..afcea1eeb4 --- /dev/null +++ b/libs/tgl/src/mtproto-common.h @@ -0,0 +1,385 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Nikolay Durov, Andrey Lopatin 2012-2013 + Vitaly Valtman 2013-2015 +*/ +#ifndef __MTPROTO_COMMON_H__ +#define __MTPROTO_COMMON_H__ + +#include +#include +#include +#include +#include +#include + +//#include "interface.h" +#include "tools.h" +#include "auto/constants.h" + +#include "tgl.h" +#include "tgl-inner.h" +/* DH key exchange protocol data structures */ +#define CODE_req_pq 0x60469778 +#define CODE_resPQ 0x05162463 +#define CODE_req_DH_params 0xd712e4be +#define CODE_p_q_inner_data 0x83c95aec +#define CODE_p_q_inner_data_temp 0x3c6a84d4 +#define CODE_server_DH_inner_data 0xb5890dba +#define CODE_server_DH_params_fail 0x79cb045d +#define CODE_server_DH_params_ok 0xd0e8075c +#define CODE_set_client_DH_params 0xf5045f1f +#define CODE_client_DH_inner_data 0x6643b654 +#define CODE_dh_gen_ok 0x3bcbf734 +#define CODE_dh_gen_retry 0x46dc1fb9 +#define CODE_dh_gen_fail 0xa69dae02 + +#define CODE_bind_auth_key_inner 0x75a3f765 + +/* service messages */ +#define CODE_rpc_result 0xf35c6d01 +#define CODE_rpc_error 0x2144ca19 +#define CODE_msg_container 0x73f1f8dc +#define CODE_msg_copy 0xe06046b2 +#define CODE_msgs_ack 0x62d6b459 +#define CODE_bad_msg_notification 0xa7eff811 +#define CODE_bad_server_salt 0xedab447b +#define CODE_msgs_state_req 0xda69fb52 +#define CODE_msgs_state_info 0x04deb57d +#define CODE_msgs_all_info 0x8cc0d131 +#define CODE_new_session_created 0x9ec20908 +#define CODE_msg_resend_req 0x7d861a08 +#define CODE_ping 0x7abe77ec +#define CODE_pong 0x347773c5 +#define CODE_destroy_session 0xe7512126 +#define CODE_destroy_session_ok 0xe22045fc +#define CODE_destroy_session_none 0x62d350c9 +#define CODE_destroy_sessions 0x9a6face8 +#define CODE_destroy_sessions_res 0xa8164668 +#define CODE_get_future_salts 0xb921bd04 +#define CODE_future_salt 0x0949d9dc +#define CODE_future_salts 0xae500895 +#define CODE_rpc_drop_answer 0x58e4a740 +#define CODE_rpc_answer_unknown 0x5e2ad36e +#define CODE_rpc_answer_dropped_running 0xcd78e586 +#define CODE_rpc_answer_dropped 0xa43ad8b7 +#define CODE_msg_detailed_info 0x276d3ec6 +#define CODE_msg_new_detailed_info 0x809db6df +#define CODE_ping_delay_disconnect 0xf3427b8c +#define CODE_gzip_packed 0x3072cfa1 + +#define CODE_input_peer_notify_settings_old 0x3cf4b1be +#define CODE_peer_notify_settings_old 0xddbcd4a5 +#define CODE_user_profile_photo_old 0x990d1493 +#define CODE_config_old 0x232d5905 + +#define CODE_msg_new_detailed_info 0x809db6df + +#define CODE_msg_detailed_info 0x276d3ec6 +/* not really a limit, for struct encrypted_message only */ +// #define MAX_MESSAGE_INTS 16384 +#define MAX_MESSAGE_INTS 1048576 +#define MAX_PROTO_MESSAGE_INTS 1048576 + +#define PACKET_BUFFER_SIZE (16384 * 100 + 16) // temp fix +#pragma pack(push,4) +struct encrypted_message { + // unencrypted header + long long auth_key_id; + char msg_key[16]; + // encrypted part, starts with encrypted header + long long server_salt; + long long session_id; + // long long auth_key_id2; // removed + // first message follows + long long msg_id; + int seq_no; + int msg_len; // divisible by 4 + int message[MAX_MESSAGE_INTS]; +}; + +#pragma pack(pop) + +//BN_CTX *BN_ctx; + +void tgl_prng_seed (struct tgl_state *TLS, const char *password_filename, int password_length); +int tgl_serialize_bignum (BIGNUM *b, char *buffer, int maxlen); +long long tgl_do_compute_rsa_key_fingerprint (RSA *key); + +#define packet_buffer tgl_packet_buffer +#define packet_ptr tgl_packet_ptr + +extern int *tgl_packet_buffer; +extern int *tgl_packet_ptr; + +static inline void out_ints (const int *what, int len) { + assert (packet_ptr + len <= packet_buffer + PACKET_BUFFER_SIZE); + memcpy (packet_ptr, what, len * 4); + packet_ptr += len; +} + + +static inline void out_int (int x) { + assert (packet_ptr + 1 <= packet_buffer + PACKET_BUFFER_SIZE); + *packet_ptr++ = x; +} + + +static inline void out_long (long long x) { + assert (packet_ptr + 2 <= packet_buffer + PACKET_BUFFER_SIZE); + *(long long *)packet_ptr = x; + packet_ptr += 2; +} + +static inline void out_double (double x) { + assert (packet_ptr + 2 <= packet_buffer + PACKET_BUFFER_SIZE); + *(double *)packet_ptr = x; + packet_ptr += 2; +} + +static inline void clear_packet (void) { + packet_ptr = packet_buffer; +} + +void tgl_out_cstring (const char *str, long len); +void tgl_out_cstring_careful (const char *str, long len); +void tgl_out_data (const void *data, long len); + +#define out_cstring tgl_out_cstring +#define out_cstring_careful tgl_out_cstring_careful +#define out_data tgl_out_data + +static inline void out_string (const char *str) { + out_cstring (str, strlen (str)); +} + +static inline void out_bignum (BIGNUM *n) { + int l = tgl_serialize_bignum (n, (char *)packet_ptr, (PACKET_BUFFER_SIZE - (packet_ptr - packet_buffer)) * 4); + assert (l > 0); + packet_ptr += l >> 2; +} + +#define in_ptr tgl_in_ptr +#define in_end tgl_in_end +extern int *tgl_in_ptr, *tgl_in_end; + + +//void fetch_pts (void); +//void fetch_qts (void); +//void fetch_date (void); +//void fetch_seq (void); +static inline int prefetch_strlen (void) { + if (in_ptr >= in_end) { + return -1; + } + unsigned l = *in_ptr; + if ((l & 0xff) < 0xfe) { + l &= 0xff; + return (in_end >= in_ptr + (l >> 2) + 1) ? (int)l : -1; + } else if ((l & 0xff) == 0xfe) { + l >>= 8; + return (l >= 254 && in_end >= in_ptr + ((l + 7) >> 2)) ? (int)l : -1; + } else { + return -1; + } +} + +static inline char *fetch_str (int len) { + assert (len >= 0); + if (len < 254) { + char *str = (char *) in_ptr + 1; + in_ptr += 1 + (len >> 2); + return str; + } else { + char *str = (char *) in_ptr + 4; + in_ptr += (len + 7) >> 2; + return str; + } +} + +static inline char *fetch_str_dup (void) { + int l = prefetch_strlen (); + assert (l >= 0); + int i; + char *s = fetch_str (l); + for (i = 0; i < l; i++) { + if (!s[i]) { break; } + } + char *r = talloc (i + 1); + memcpy (r, s, i); + r[i] = 0; + return r; +} + +static inline int fetch_update_str (char **s) { + if (!*s) { + *s = fetch_str_dup (); + return 1; + } + int l = prefetch_strlen (); + char *r = fetch_str (l); + if (memcmp (*s, r, l) || (*s)[l]) { + tfree_str (*s); + *s = talloc (l + 1); + memcpy (*s, r, l); + (*s)[l] = 0; + return 1; + } + return 0; +} + +static inline int fetch_update_int (int *value) { + if (*value == *in_ptr) { + in_ptr ++; + return 0; + } else { + *value = *(in_ptr ++); + return 1; + } +} + +static inline int fetch_update_long (long long *value) { + if (*value == *(long long *)in_ptr) { + in_ptr += 2; + return 0; + } else { + *value = *(long long *)(in_ptr); + in_ptr += 2; + return 1; + } +} + +static inline int set_update_int (int *value, int new_value) { + if (*value == new_value) { + return 0; + } else { + *value = new_value; + return 1; + } +} + +static inline void fetch_skip (int n) { + in_ptr += n; + assert (in_ptr <= in_end); +} + +static inline void fetch_skip_str (void) { + int l = prefetch_strlen (); + assert (l >= 0); + fetch_str (l); +} + +static inline long have_prefetch_ints (void) { + return in_end - in_ptr; +} + +int tgl_fetch_bignum (BIGNUM *x); +#define fetch_bignum tgl_fetch_bignum + +static inline int fetch_int (void) { + assert (in_ptr + 1 <= in_end); + return *(in_ptr ++); +} + +static inline int fetch_bool (void) { + assert (in_ptr + 1 <= in_end); + assert (*(in_ptr) == (int)CODE_bool_true || *(in_ptr) == (int)CODE_bool_false); + return *(in_ptr ++) == (int)CODE_bool_true; +} + +static inline int prefetch_int (void) { + assert (in_ptr < in_end); + return *(in_ptr); +} + +static inline void prefetch_data (void *data, int size) { + assert (in_ptr + (size >> 2) <= in_end); + memcpy (data, in_ptr, size); +} + +static inline void fetch_data (void *data, int size) { + assert (in_ptr + (size >> 2) <= in_end); + memcpy (data, in_ptr, size); + assert (!(size & 3)); + in_ptr += (size >> 2); +} + +static inline long long fetch_long (void) { + assert (in_ptr + 2 <= in_end); + long long r = *(long long *)in_ptr; + in_ptr += 2; + return r; +} + +static inline double fetch_double (void) { + assert (in_ptr + 2 <= in_end); + double r = *(double *)in_ptr; + in_ptr += 2; + return r; +} + +static inline void fetch_ints (void *data, int count) { + assert (in_ptr + count <= in_end); + memcpy (data, in_ptr, 4 * count); + in_ptr += count; +} + +static inline void fetch256 (void *buf) { + int l = prefetch_strlen (); + assert (l >= 0); + char *s = fetch_str (l); + if (l < 256) { + memcpy ((char *)buf + 256 - l, s, l); + memset (buf, 0, 256 - l); + } else { + memcpy (buf, s + (l - 256), 256); + } +} + +static inline int in_remaining (void) { + return 4 * (in_end - in_ptr); +} + +//int get_random_bytes (unsigned char *buf, int n); + +int tgl_pad_rsa_encrypt (struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *E); +int tgl_pad_rsa_decrypt (struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *D); + +//extern long long rsa_encrypted_chunks, rsa_decrypted_chunks; + +//extern unsigned char aes_key_raw[32], aes_iv[32]; +//extern AES_KEY aes_key; + +void tgl_init_aes_unauth (const char server_nonce[16], const char hidden_client_nonce[32], int encrypt); +void tgl_init_aes_auth (char auth_key[192], char msg_key[16], int encrypt); +int tgl_pad_aes_encrypt (char *from, int from_len, char *to, int size); +int tgl_pad_aes_decrypt (char *from, int from_len, char *to, int size); +/* +static inline void hexdump_in (void) { + hexdump (in_ptr, in_end); +} + +static inline void hexdump_out (void) { + hexdump (packet_buffer, packet_ptr); +}*/ + +#if defined(__MACH__) || defined(WIN32) || defined(_WIN32) +#define CLOCK_REALTIME 0 +#define CLOCK_MONOTONIC 1 +#endif +#endif diff --git a/libs/tgl/src/mtproto-utils.c b/libs/tgl/src/mtproto-utils.c new file mode 100644 index 0000000000..481bff6371 --- /dev/null +++ b/libs/tgl/src/mtproto-utils.c @@ -0,0 +1,178 @@ +#include "config.h" +#include +#include "tgl.h" +#include "tools.h" + +#if !defined(HAVE___BUILTIN_BSWAP32) && !defined(__FreeBSD__) && !defined(__OpenBSD__) +static inline unsigned __builtin_bswap32(unsigned x) { + return ((x << 24) & 0xff000000) | + ((x << 8) & 0x00ff0000) | + ((x >> 8) & 0x0000ff00) | + ((x >> 24) & 0x000000ff); +} +#endif + +static unsigned long long gcd (unsigned long long a, unsigned long long b) { + return b ? gcd (b, a % b) : a; +} + +static int check_prime (struct tgl_state *TLS, BIGNUM *p) { + int r = BN_is_prime (p, BN_prime_checks, 0, TLS->BN_ctx, 0); + ensure (r >= 0); + return r; +} + + +// Complete set of checks see at https://core.telegram.org/mtproto/security_guidelines + + +// Checks that (p,g) is acceptable pair for DH +int tglmp_check_DH_params (struct tgl_state *TLS, BIGNUM *p, int g) { + if (g < 2 || g > 7) { return -1; } + if (BN_num_bits (p) != 2048) { return -1; } + + BIGNUM *t = BN_new (); + + BIGNUM *dh_g = BN_new (); + + ensure (BN_set_word (dh_g, 4 * g)); + ensure (BN_mod (t, p, dh_g, TLS->BN_ctx)); + int x = BN_get_word (t); + assert (x >= 0 && x < 4 * g); + + BN_free (dh_g); + + int res = 0; + switch (g) { + case 2: + if (x != 7) { res = -1; } + break; + case 3: + if (x % 3 != 2) { res = -1; } + break; + case 4: + break; + case 5: + if (x % 5 != 1 && x % 5 != 4) { res = -1; } + break; + case 6: + if (x != 19 && x != 23) { res = -1; } + break; + case 7: + if (x % 7 != 3 && x % 7 != 5 && x % 7 != 6) { res = -1; } + break; + } + + if (res < 0 || !check_prime (TLS, p)) { + BN_free (t); + return -1; + } + + BIGNUM *b = BN_new (); + ensure (BN_set_word (b, 2)); + ensure (BN_div (t, 0, p, b, TLS->BN_ctx)); + if (!check_prime (TLS, t)) { + res = -1; + } + BN_free (b); + BN_free (t); + return res; +} + +// checks that g_a is acceptable for DH +int tglmp_check_g_a (struct tgl_state *TLS, BIGNUM *p, BIGNUM *g_a) { + if (BN_num_bytes (g_a) > 256) { + return -1; + } + if (BN_num_bits (g_a) < 2048 - 64) { + return -1; + } + if (BN_cmp (p, g_a) <= 0) { + return -1; + } + + BIGNUM *dif = BN_new (); + BN_sub (dif, p, g_a); + if (BN_num_bits (dif) < 2048 - 64) { + BN_free (dif); + return -1; + } + BN_free (dif); + return 0; +} + +static unsigned long long BN2ull (BIGNUM *b) { + if (sizeof (BN_ULONG) == 8) { + return BN_get_word (b); + } else { + unsigned int tmp[2]; + memset (tmp, 0, 8); + BN_bn2bin (b, (void *)tmp); + return __builtin_bswap32 (tmp[0]) * (1ll << 32) | __builtin_bswap32 (tmp[1]); + } +} + +static void ull2BN (BIGNUM *b, unsigned long long val) { + if (sizeof (BN_ULONG) == 8 || val < (1ll << 32)) { + BN_set_word (b, val); + } else { + unsigned int tmp[2]; + tmp[0] = __builtin_bswap32 (val >> 32); + tmp[1] = __builtin_bswap32 ((unsigned)val); + BN_bin2bn ((void *)tmp, 8, b); + } +} + +int bn_factorize (BIGNUM *pq, BIGNUM *p, BIGNUM *q) { + // Should work in any case + // Rewrite this code + unsigned long long what = BN2ull (pq); + + int it = 0; + + unsigned long long g = 0; + int i; + for (i = 0; i < 3 || it < 1000; i++) { + int q = ((lrand48() & 15) + 17) % what; + unsigned long long x = (long long)lrand48 () % (what - 1) + 1, y = x; + int lim = 1 << (i + 18); + int j; + for (j = 1; j < lim; j++) { + ++it; + unsigned long long a = x, b = x, c = q; + while (b) { + if (b & 1) { + c += a; + if (c >= what) { + c -= what; + } + } + a += a; + if (a >= what) { + a -= what; + } + b >>= 1; + } + x = c; + unsigned long long z = x < y ? what + x - y : x - y; + g = gcd (z, what); + if (g != 1) { + break; + } + if (!(j & (j - 1))) { + y = x; + } + } + if (g > 1 && g < what) break; + } + + assert (g > 1 && g < what); + unsigned long long p1 = g; + unsigned long long p2 = what / g; + if (p1 > p2) { + unsigned long long t = p1; p1 = p2; p2 = t; + } + ull2BN (p, p1); + ull2BN (q, p2); + return 0; +} diff --git a/libs/tgl/src/mtproto-utils.h b/libs/tgl/src/mtproto-utils.h new file mode 100644 index 0000000000..e9bb6aeef3 --- /dev/null +++ b/libs/tgl/src/mtproto-utils.h @@ -0,0 +1,7 @@ +#ifndef __MTPROTO_UTILS_H__ +#define __MTPROTO_UTILS_H__ +#include +int tglmp_check_DH_params (struct tgl_state *TLS, BIGNUM *p, int g); +int tglmp_check_g_a (struct tgl_state *TLS, BIGNUM *p, BIGNUM *g_a); +int bn_factorize (BIGNUM *pq, BIGNUM *p, BIGNUM *q); +#endif diff --git a/libs/tgl/src/mtproto.tl b/libs/tgl/src/mtproto.tl new file mode 100644 index 0000000000..2f02c49ae8 --- /dev/null +++ b/libs/tgl/src/mtproto.tl @@ -0,0 +1,19 @@ +---types--- +resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:(Vector long) = ResPQ; +server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params; +server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params; + +p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data; +p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data; +client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data; + +dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer; +dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer; +dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer; + +server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data; + +---functions--- +req_pq#60469778 nonce:int128 = ResPQ; +req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params; +set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer; diff --git a/libs/tgl/src/no-preview.h b/libs/tgl/src/no-preview.h new file mode 100644 index 0000000000..cf2651d9d2 --- /dev/null +++ b/libs/tgl/src/no-preview.h @@ -0,0 +1,106 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +// Just sample jpg file 90x90 + +int thumb_file_size = (82 * 6 - 2) * 4; +int thumb_file [] = { +0xe0ffd8ff, 0x464a1000, 0x01004649, 0x64000101, 0x00006400, 0xa002e2ff, +0x5f434349, 0x464f5250, 0x00454c49, 0x00000101, 0x636c9002, 0x3004736d, +0x6e6d0000, 0x47527274, 0x59582042, 0xdd07205a, 0x04000b00, 0x1b001600, +0x63612400, 0x50417073, 0x00004c50, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x0100d6f6, 0x00000000, 0x636c2dd3, +0x0000736d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x65640b00, 0x00006373, 0x00000801, 0x70633800, 0x00007472, 0x00004001, +0x74774e00, 0x00007470, 0x00009001, 0x68631400, 0x00006461, 0x0000a401, +0x58722c00, 0x00005a59, 0x0000d001, 0x58621400, 0x00005a59, 0x0000e401, +0x58671400, 0x00005a59, 0x0000f801, 0x54721400, 0x00004352, 0x00000c02, +0x54672000, 0x00004352, 0x00002c02, 0x54622000, 0x00004352, 0x00004c02, +0x68632000, 0x00006d72, 0x00006c02, 0x6c6d2400, 0x00006375, 0x00000000, +0x00000100, 0x6e650c00, 0x00005355, 0x00001c00, 0x73001c00, 0x47005200, +0x20004200, 0x75006200, 0x6c006900, 0x2d007400, 0x6e006900, 0x6c6d0000, +0x00006375, 0x00000000, 0x00000100, 0x6e650c00, 0x00005355, 0x00003200, +0x4e001c00, 0x20006f00, 0x6f006300, 0x79007000, 0x69007200, 0x68006700, +0x2c007400, 0x75002000, 0x65007300, 0x66002000, 0x65007200, 0x6c006500, +0x00007900, 0x59580000, 0x0000205a, 0x00000000, 0x0100d6f6, 0x00000000, +0x66732dd3, 0x00003233, 0x01000000, 0x00004a0c, 0xffffe305, 0x00002af3, +0x00009b07, 0xffff87fd, 0xffffa2fb, 0x0000a3fd, 0x0000d803, 0x595894c0, +0x0000205a, 0x00000000, 0x0000946f, 0x0000ee38, 0x59589003, 0x0000205a, +0x00000000, 0x00009d24, 0x0000830f, 0x5958beb6, 0x0000205a, 0x00000000, +0x0000a562, 0x000090b7, 0x6170de18, 0x00006172, 0x03000000, 0x02000000, +0x00006666, 0x0000a7f2, 0x0000590d, 0x0000d013, 0x61705b0a, 0x00006172, +0x03000000, 0x02000000, 0x00006666, 0x0000a7f2, 0x0000590d, 0x0000d013, +0x61705b0a, 0x00006172, 0x03000000, 0x02000000, 0x00006666, 0x0000a7f2, +0x0000590d, 0x0000d013, 0x68635b0a, 0x00006d72, 0x03000000, 0x00000000, +0x0000d7a3, 0x00007b54, 0x0000cd4c, 0x00009a99, 0x00006626, 0xdbff5c0f, +0x14004300, 0x0f120f0e, 0x1112140d, 0x14161712, 0x21331f18, 0x1f1c1c1f, +0x252f2d3f, 0x4e414a33, 0x4841494d, 0x765c5246, 0x6f575264, 0x66484658, +0x7a6f688c, 0x8485847d, 0x9b91634f, 0x769a808f, 0xff7f8481, 0x014300db, +0x1f171716, 0x213c1f1b, 0x547f3c21, 0x7f7f5448, 0x7f7f7f7f, 0x7f7f7f7f, +0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, +0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x1100c0ff, 0x005a0008, +0x2201035a, 0x01110200, 0xff011103, 0x001900c4, 0x01010101, 0x00000101, +0x00000000, 0x00000000, 0x02030400, 0xc4ff0605, 0x00103600, 0x02010401, +0x06050304, 0x00000306, 0x01000000, 0x11030200, 0x05211204, 0x13514131, +0x32146122, 0x23918171, 0x72423424, 0x432515a1, 0xa2827444, 0xc4fff0b3, +0x01011400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1400c4ff, +0x00000111, 0x00000000, 0x00000000, 0x00000000, 0xdaff0000, 0x01030c00, +0x03110200, 0x003f0011, 0x404434fb, 0xbcb4875c, 0x006b38b0, 0x03dcdb12, +0xf4637f74, 0xe519f153, 0x09d7c5c7, 0x47d29160, 0x20692f18, 0xd06d786a, +0x53f7f922, 0x17b3e260, 0x2fe8668c, 0x1786a473, 0x9775efbd, 0xe917e43a, +0x1d0a1bb0, 0x114d0f82, 0x14651110, 0x35f299ed, 0xe9b09680, 0xf5a4fc2f, +0xe975bd03, 0xb506737b, 0x04444440, 0x5c444044, 0x8e8dedbd, 0xc61adc7b, +0x689c738b, 0x92a0dc01, 0x58e2b77f, 0x7bfb37d1, 0xb5b5e79d, 0xdbf968cc, +0xead3f48d, 0x38ed1313, 0xdea77c86, 0xae089963, 0xc743435a, 0x403fe4ce, +0x392ee1b9, 0xed39e718, 0xd6517e2d, 0x7fc4aa03, 0xb7ad7590, 0x77e7e6ab, +0x34bf705d, 0x7c77ca53, 0x3dea1299, 0x7fb0bcf4, 0x241fadc5, 0x95a7a816, +0x13fbe6f3, 0x3182b135, 0xd1b4b224, 0x1b0d48a2, 0xbf9d26d8, 0x82dc3640, +0x63569a2a, 0xbbd224c3, 0xb9b4714c, 0x1680aec6, 0x3d311856, 0x9b59be91, +0x09876ca6, 0x61d86564, 0x5a9f06d2, 0x36f51b0d, 0x8682e476, 0xacb1b131, +0xd1584363, 0x00456b4d, 0x22d2053b, 0x22202202, 0xf3f30222, 0xe3e513e5, +0xf1e6e1f0, 0x2380496e, 0x5fdcdb68, 0x549b3a27, 0x825e6a6c, 0x6522028b, +0xaf91ccc8, 0x341cf26b, 0x58dbc4b5, 0xf2289add, 0x0854ddbd, 0x0b9247d5, +0xf02b5c54, 0x3f917f92, 0xaf56affd, 0xe3760637, 0x05cebde0, 0xed4c76ce, +0x3cef1b63, 0x7fd8aff8, 0xa0c902ea, 0x7e730d0a, 0x435834f3, 0x26edbb76, +0xd3ec00fd, 0x76d48efa, 0xa8560f2d, 0x0e766331, 0xd319993c, 0x20243209, +0x61b7e6c8, 0x998331d0, 0x640ee802, 0x47a3d493, 0xfab99413, 0x4fd871f1, +0xe9443792, 0x627e051c, 0xd8f3051c, 0x2f28f558, 0x64b51745, 0x1b2bfee3, +0xb8783953, 0x9900fff6, 0xd8176a65, 0x5a3bf56a, 0x1b331fdb, 0x64b3572f, +0xd59a3643, 0xaf3abce1, 0x11dd20bd, 0x01111110, 0x5c141011, 0xb3e3083f, +0xd9b19cc4, 0x17edb20e, 0xa78e9aa1, 0x4ef4de06, 0x00c0bfe7, 0x7e1e442d, +0x9221fe38, 0xedb5c7dc, 0x6338078a, 0x62495b8d, 0xc11d9b8c, 0x49e81b16, +0x51d02bea, 0x3eb86d70, 0xc8bc4f13, 0xa10ec758, 0xd40751c0, 0x5ac94710, +0xc4c8b080, 0x95492b83, 0x975ee696, 0xb7bd96b4, 0x17379cce, 0x82e856e8, +0xe4c2c82a, 0x398e935f, 0x632437ea, 0x7c9c87d2, 0xdc1ddb7c, 0x65a80a48, +0x2309f164, 0x51fab475, 0x081dc11d, 0xda45573b, 0x6622f3f3, 0x48f1b214, +0x676c4edb, 0x243468c7, 0x00ffde60, 0xf1630350, 0xa0076c1d, 0x8f2c0c8b, +0x2383c26b, 0x361a8f4e, 0xaceea6c9, 0x01dd5a5d, 0x11111011, 0xc3780c04, +0xbf093ee2, 0xc7972c0b, 0x00d99040, 0xc0c20eb7, 0x659d3bd4, 0x269ab85e, +0x468e114f, 0x11ad4fdb, 0x83d083d8, 0x8c52f4bd, 0x3c9664bf, 0xa4f9c77c, +0x22a68876, 0xadb18784, 0xf480be83, 0x885a00ea, 0x220e0a88, 0xc303e4f6, +0xc866e058, 0xdddbd661, 0xdf395db1, 0xbad64343, 0xe6e65b03, 0x668e81c3, +0xad619e98, 0xeeb94563, 0xd4d19a3c, 0x3316ce95, 0x9d65f1e1, 0x3bf324fe, +0x0e468f53, 0xc386068c, 0xa89e24f7, 0xf0c7c73b, 0xb60e391f, 0x1b8827cb, +0x58601954, 0xc54f90f9, 0x80886ec5, 0x88088888, 0x1b7bb980, 0xb4c71c23, +0xe6148e39, 0xb12358b8, 0xbd08225d, 0x0ffef085, 0x72b4f025, 0x635ce389, +0xb90277e4, 0x0d05e000, 0x9bf9dbb9, 0x8e749fbc, 0x7ee6abbf, 0x4ddbf4af, +0x728df7f3, 0x10b59adf, 0xe3c38f49, 0xb23c638a, 0xdb3d9349, 0x66899a64, +0x00004dd5, 0xf51b5adf, 0x2220a255, 0xd9ff0f22}; diff --git a/libs/tgl/src/queries-encrypted.c b/libs/tgl/src/queries-encrypted.c new file mode 100644 index 0000000000..cdfea63029 --- /dev/null +++ b/libs/tgl/src/queries-encrypted.c @@ -0,0 +1,758 @@ + +/* {{{ Encrypt decrypted */ +static int *encr_extra; +static int *encr_ptr; +static int *encr_end; + +static char *encrypt_decrypted_message (struct tgl_secret_chat *E) { + static int msg_key[4]; + static unsigned char sha1a_buffer[20]; + static unsigned char sha1b_buffer[20]; + static unsigned char sha1c_buffer[20]; + static unsigned char sha1d_buffer[20]; + int x = *(encr_ptr); + assert (x >= 0 && !(x & 3)); + sha1 ((void *)encr_ptr, 4 + x, sha1a_buffer); + memcpy (msg_key, sha1a_buffer + 4, 16); + + static unsigned char buf[64]; + memcpy (buf, msg_key, 16); + memcpy (buf + 16, E->key, 32); + sha1 (buf, 48, sha1a_buffer); + + memcpy (buf, E->key + 8, 16); + memcpy (buf + 16, msg_key, 16); + memcpy (buf + 32, E->key + 12, 16); + sha1 (buf, 48, sha1b_buffer); + + memcpy (buf, E->key + 16, 32); + memcpy (buf + 32, msg_key, 16); + sha1 (buf, 48, sha1c_buffer); + + memcpy (buf, msg_key, 16); + memcpy (buf + 16, E->key + 24, 32); + sha1 (buf, 48, sha1d_buffer); + + static unsigned char key[32]; + memcpy (key, sha1a_buffer + 0, 8); + memcpy (key + 8, sha1b_buffer + 8, 12); + memcpy (key + 20, sha1c_buffer + 4, 12); + + static unsigned char iv[32]; + memcpy (iv, sha1a_buffer + 8, 12); + memcpy (iv + 12, sha1b_buffer + 0, 8); + memcpy (iv + 20, sha1c_buffer + 16, 4); + memcpy (iv + 24, sha1d_buffer + 0, 8); + + AES_KEY aes_key; + AES_set_encrypt_key (key, 256, &aes_key); + AES_ige_encrypt ((void *)encr_ptr, (void *)encr_ptr, 4 * (encr_end - encr_ptr), &aes_key, iv, 1); + memset (&aes_key, 0, sizeof (aes_key)); + + return (void *)msg_key; +} + +static void encr_start (void) { + encr_extra = packet_ptr; + packet_ptr += 1; // str len + packet_ptr += 2; // fingerprint + packet_ptr += 4; // msg_key + packet_ptr += 1; // len +} + + +static void encr_finish (struct tgl_secret_chat *E) { + int l = packet_ptr - (encr_extra + 8); + while (((packet_ptr - encr_extra) - 3) & 3) { + int t; + tglt_secure_random (&t, 4); + out_int (t); + } + + *encr_extra = ((packet_ptr - encr_extra) - 1) * 4 * 256 + 0xfe; + encr_extra ++; + *(long long *)encr_extra = E->key_fingerprint; + encr_extra += 2; + encr_extra[4] = l * 4; + encr_ptr = encr_extra + 4; + encr_end = packet_ptr; + memcpy (encr_extra, encrypt_decrypted_message (E), 16); +} +/* }}} */ + +void tgl_do_send_encr_action (struct tgl_state *TLS, struct tgl_secret_chat *E, struct tl_ds_decrypted_message_action *A) { + long long t; + tglt_secure_random (&t, 8); + int peer_id = tgl_get_peer_id (E->id); + int peer_type = TGL_PEER_ENCR_CHAT; + int date = time (0); + + bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, NULL, A, NULL, TGLMF_PENDING | TGLMF_OUT | TGLMF_UNREAD | TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED); + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + tgl_do_send_msg (TLS, M, 0, 0); +} + +void tgl_do_send_encr_chat_layer (struct tgl_state *TLS, struct tgl_secret_chat *E) { + static struct tl_ds_decrypted_message_action A; + A.magic = CODE_decrypted_message_action_notify_layer; + int layer = TGL_ENCRYPTED_LAYER; + A.layer = &layer; + + tgl_do_send_encr_action (TLS, E, &A); +} + +void tgl_do_set_encr_chat_ttl (struct tgl_state *TLS, struct tgl_secret_chat *E, int ttl, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + static struct tl_ds_decrypted_message_action A; + A.magic = CODE_decrypted_message_action_set_message_t_t_l; + A.layer = &ttl; + + tgl_do_send_encr_action (TLS, E, &A); +} + + +/* {{{ Seng msg (plain text, encrypted) */ +static int msg_send_encr_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_message *M = q->extra; + assert (M->flags & TGLMF_ENCRYPTED); + + if (M->flags & TGLMF_PENDING) { + bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL, + &M->date, + NULL, 0, NULL, NULL, NULL, M->flags ^ TGLMF_PENDING); + + bl_do_msg_update (TLS, M->id); + } + + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 1, M); + } + return 0; +} + +static int msg_send_encr_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + struct tgl_message *M = q->extra; + tgl_peer_t *P = tgl_peer_get (TLS, M->to_id); + if (P && P->encr_chat.state != sc_deleted && error_code == 400) { + if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { + bl_do_encr_chat_delete (TLS, &P->encr_chat); + } + } + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, M); + } + if (M) { + bl_do_message_delete (TLS, M); + } + return 0; +} + +static struct query_methods msg_send_encr_methods = { + .on_answer = msg_send_encr_on_answer, + .on_error = msg_send_encr_on_error, + .type = TYPE_TO_PARAM(messages_sent_encrypted_message) +}; +/* }}} */ + +void tgl_do_send_encr_msg_action (struct tgl_state *TLS, struct tgl_message *M, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + tgl_peer_t *P = tgl_peer_get (TLS, M->to_id); + if (!P || P->encr_chat.state != sc_ok) { + vlogprintf (E_WARNING, "Unknown encrypted chat\n"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + assert (M->flags & TGLMF_ENCRYPTED); + clear_packet (); + out_int (CODE_messages_send_encrypted_service); + out_int (CODE_input_encrypted_chat); + out_int (tgl_get_peer_id (M->to_id)); + out_long (P->encr_chat.access_hash); + out_long (M->id); + encr_start (); + out_int (CODE_decrypted_message_layer); + out_random (15 + 4 * (lrand48 () % 3)); + out_int (TGL_ENCRYPTED_LAYER); + out_int (2 * P->encr_chat.in_seq_no + (P->encr_chat.admin_id != TLS->our_id)); + out_int (2 * P->encr_chat.out_seq_no + (P->encr_chat.admin_id == TLS->our_id) - 2); + out_int (CODE_decrypted_message_service); + out_long (M->id); + + switch (M->action.type) { + case tgl_message_action_notify_layer: + out_int (CODE_decrypted_message_action_notify_layer); + out_int (M->action.layer); + break; + case tgl_message_action_set_message_ttl: + out_int (CODE_decrypted_message_action_set_message_t_t_l); + out_int (M->action.ttl); + break; + case tgl_message_action_request_key: + out_int (CODE_decrypted_message_action_request_key); + out_long (M->action.exchange_id); + out_cstring ((void *)M->action.g_a, 256); + break; + case tgl_message_action_accept_key: + out_int (CODE_decrypted_message_action_accept_key); + out_long (M->action.exchange_id); + out_cstring ((void *)M->action.g_a, 256); + out_long (M->action.key_fingerprint); + break; + case tgl_message_action_commit_key: + out_int (CODE_decrypted_message_action_commit_key); + out_long (M->action.exchange_id); + out_long (M->action.key_fingerprint); + break; + case tgl_message_action_abort_key: + out_int (CODE_decrypted_message_action_abort_key); + out_long (M->action.exchange_id); + break; + case tgl_message_action_noop: + out_int (CODE_decrypted_message_action_noop); + break; + default: + assert (0); + } + encr_finish (&P->encr_chat); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_encr_methods, M, callback, callback_extra); +} + +void tgl_do_send_encr_msg (struct tgl_state *TLS, struct tgl_message *M, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (M->flags & TGLMF_SERVICE) { + tgl_do_send_encr_msg_action (TLS, M, callback, callback_extra); + return; + } + tgl_peer_t *P = tgl_peer_get (TLS, M->to_id); + if (!P || P->encr_chat.state != sc_ok) { + vlogprintf (E_WARNING, "Unknown encrypted chat\n"); + if (callback) { + callback (TLS, callback_extra, 0, M); + } + return; + } + + assert (M->flags & TGLMF_ENCRYPTED); + + clear_packet (); + out_int (CODE_messages_send_encrypted); + out_int (CODE_input_encrypted_chat); + out_int (tgl_get_peer_id (M->to_id)); + out_long (P->encr_chat.access_hash); + out_long (M->id); + encr_start (); + out_int (CODE_decrypted_message_layer); + out_random (15 + 4 * (lrand48 () % 3)); + out_int (TGL_ENCRYPTED_LAYER); + out_int (2 * P->encr_chat.in_seq_no + (P->encr_chat.admin_id != TLS->our_id)); + out_int (2 * P->encr_chat.out_seq_no + (P->encr_chat.admin_id == TLS->our_id) - 2); + out_int (CODE_decrypted_message); + out_long (M->id); + out_int (P->encr_chat.ttl); + out_cstring ((void *)M->message, M->message_len); + switch (M->media.type) { + case tgl_message_media_none: + out_int (CODE_decrypted_message_media_empty); + break; + case tgl_message_media_geo: + out_int (CODE_decrypted_message_media_geo_point); + out_double (M->media.geo.latitude); + out_double (M->media.geo.longitude); + break; + default: + assert (0); + } + encr_finish (&P->encr_chat); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_encr_methods, M, callback, callback_extra); +} + +static int mark_read_encr_on_receive (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static int mark_read_encr_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_peer_t *P = q->extra; + if (P && P->encr_chat.state != sc_deleted && error_code == 400) { + if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { + bl_do_encr_chat_delete(TLS, &P->encr_chat); + } + } + return 0; +} + +static struct query_methods mark_read_encr_methods = { + .on_answer = mark_read_encr_on_receive, + .on_error = mark_read_encr_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +void tgl_do_messages_mark_read_encr (struct tgl_state *TLS, tgl_peer_id_t id, long long access_hash, int last_time, void (*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_read_encrypted_history); + out_int (CODE_input_encrypted_chat); + out_int (tgl_get_peer_id (id)); + out_long (access_hash); + out_int (last_time); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &mark_read_encr_methods, tgl_peer_get (TLS, id), callback, callback_extra); +} + +static int send_encr_file_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_sent_encrypted_message *DS_MSEM = D; + struct tgl_message *M = q->extra; + + if (M->flags & TGLMF_PENDING) { + bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL, DS_MSEM->date, + NULL, 0, NULL, NULL, DS_MSEM->file, M->flags ^ TGLMF_PENDING); + bl_do_msg_update (TLS, M->id); + } + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M); + } + return 0; +} + +static struct query_methods send_encr_file_methods = { + .on_answer = send_encr_file_on_answer, + .on_error = msg_send_encr_on_error, + .type = TYPE_TO_PARAM(messages_sent_encrypted_message) +}; + +static void send_file_encrypted_end (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra) { + out_int (CODE_messages_send_encrypted_file); + out_int (CODE_input_encrypted_chat); + out_int (tgl_get_peer_id (f->to_id)); + tgl_peer_t *P = tgl_peer_get (TLS, f->to_id); + assert (P); + out_long (P->encr_chat.access_hash); + long long r; + tglt_secure_random (&r, 8); + out_long (r); + encr_start (); + out_int (CODE_decrypted_message_layer); + out_random (15 + 4 * (lrand48 () % 3)); + out_int (TGL_ENCRYPTED_LAYER); + out_int (2 * P->encr_chat.in_seq_no + (P->encr_chat.admin_id != TLS->our_id)); + out_int (2 * P->encr_chat.out_seq_no + (P->encr_chat.admin_id == TLS->our_id)); + out_int (CODE_decrypted_message); + out_long (r); + out_int (P->encr_chat.ttl); + out_string (""); + int *save_ptr = packet_ptr; + if (f->flags == -1) { + out_int (CODE_decrypted_message_media_photo); + } else if ((f->flags & TGLDF_VIDEO)) { + out_int (CODE_decrypted_message_media_video); + } else if ((f->flags & TGLDF_AUDIO)) { + out_int (CODE_decrypted_message_media_audio); + } else { + out_int (CODE_decrypted_message_media_document); + } + if (f->flags == -1 || !(f->flags & TGLDF_AUDIO)) { + out_cstring ("", 0); + out_int (90); + out_int (90); + } + + if (f->flags == -1) { + out_int (f->w); + out_int (f->h); + } else if (f->flags & TGLDF_VIDEO) { + out_int (f->duration); + out_string (tg_mime_by_filename (f->file_name)); + out_int (f->w); + out_int (f->h); + } else if (f->flags & TGLDF_AUDIO) { + out_int (f->duration); + out_string (tg_mime_by_filename (f->file_name)); + } else { + out_string (""); + out_string (tg_mime_by_filename (f->file_name)); + // document + } + + out_int (f->size); + out_cstring ((void *)f->key, 32); + out_cstring ((void *)f->init_iv, 32); + + int *save_in_ptr = in_ptr; + int *save_in_end = in_end; + + in_ptr = save_ptr; + in_end = packet_ptr; + + assert (skip_type_any (TYPE_TO_PARAM(decrypted_message_media)) >= 0); + assert (in_ptr == in_end); + + in_ptr = save_ptr; + in_end = packet_ptr; + + struct tl_ds_decrypted_message_media *DS_DMM = fetch_ds_type_decrypted_message_media (TYPE_TO_PARAM (decrypted_message_media)); + in_end = save_in_ptr; + in_ptr = save_in_end; + + + int peer_type = tgl_get_peer_type (f->to_id); + int peer_id = tgl_get_peer_id (f->to_id); + int date = time (NULL); + + + encr_finish (&P->encr_chat); + if (f->size < (16 << 20)) { + out_int (CODE_input_encrypted_file_uploaded); + } else { + out_int (CODE_input_encrypted_file_big_uploaded); + } + out_long (f->id); + out_int (f->part_num); + if (f->size < (16 << 20)) { + out_string (""); + } + + unsigned char md5[16]; + unsigned char str[64]; + memcpy (str, f->key, 32); + memcpy (str + 32, f->init_iv, 32); + MD5 (str, 64, md5); + out_int ((*(int *)md5) ^ (*(int *)(md5 + 4))); + + tfree_secure (f->iv, 32); + + bl_do_create_message_encr_new (TLS, r, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, DS_DMM, NULL, NULL, TGLMF_OUT | TGLMF_UNREAD | TGLMF_ENCRYPTED | TGLMF_CREATE | TGLMF_CREATED); + + free_ds_type_decrypted_message_media (DS_DMM, TYPE_TO_PARAM (decrypted_message_media)); + struct tgl_message *M = tgl_message_get (TLS, r); + assert (M); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_file_methods, M, callback, callback_extra); + + tfree_str (f->file_name); + tfree (f, sizeof (*f)); + +} + +void tgl_do_send_location_encr (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tl_ds_decrypted_message_media TDSM; + TDSM.magic = CODE_decrypted_message_media_geo_point; + TDSM.latitude = talloc (sizeof (double)); + *TDSM.latitude = latitude; + TDSM.longitude = talloc (sizeof (double)); + *TDSM.longitude = longitude; + + int peer_type = tgl_get_peer_type (id); + int peer_id = tgl_get_peer_id (id); + int date = time (0); + + long long t; + tglt_secure_random (&t, 8); + + bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, NULL, 0, &TDSM, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED); + + tfree (TDSM.latitude, sizeof (double)); + tfree (TDSM.longitude, sizeof (double)); + + struct tgl_message *M = tgl_message_get (TLS, t); + + tgl_do_send_encr_msg (TLS, M, callback, callback_extra); +} + +/* {{{ Encr accept */ +static int send_encr_accept_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, D); + + if (E->state == sc_ok) { + tgl_do_send_encr_chat_layer (TLS, E); + } + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback) (TLS, q->callback_extra, E->state == sc_ok, E); + } + return 0; +} + +static int send_encr_request_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, D); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback) (TLS, q->callback_extra, E->state != sc_deleted, E); + } + return 0; +} + +static int encr_accept_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_peer_t *P = q->extra; + if (P && P->encr_chat.state != sc_deleted && error_code == 400) { + if (strncmp (error, "ENCRYPTION_DECLINED", 19) == 0) { + bl_do_encr_chat_delete(TLS, &P->encr_chat); + } + } + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback) (TLS, q->callback_extra, 0, NULL); + } + return 0; +} + +static struct query_methods send_encr_accept_methods = { + .on_answer = send_encr_accept_on_answer, + .on_error = encr_accept_on_error, + .type = TYPE_TO_PARAM(encrypted_chat) +}; + +static struct query_methods send_encr_request_methods = { + .on_answer = send_encr_request_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM(encrypted_chat) +}; + +//int encr_root; +//unsigned char *encr_prime; +//int encr_param_version; +//static BN_CTX *ctx; + +void tgl_do_send_accept_encr_chat (struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char *random, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra) { + int i; + int ok = 0; + for (i = 0; i < 64; i++) { + if (E->key[i]) { + ok = 1; + break; + } + } + if (ok) { + if (callback) { + callback (TLS, callback_extra, 1, E); + } + return; + } // Already generated key for this chat + assert (E->g_key); + assert (TLS->BN_ctx); + unsigned char random_here[256]; + tglt_secure_random (random_here, 256); + for (i = 0; i < 256; i++) { + random[i] ^= random_here[i]; + } + BIGNUM *b = BN_bin2bn (random, 256, 0); + ensure_ptr (b); + BIGNUM *g_a = BN_bin2bn (E->g_key, 256, 0); + ensure_ptr (g_a); + assert (tglmp_check_g_a (TLS, TLS->encr_prime_bn, g_a) >= 0); + //if (!ctx) { + // ctx = BN_CTX_new (); + // ensure_ptr (ctx); + //} + BIGNUM *p = TLS->encr_prime_bn; + BIGNUM *r = BN_new (); + ensure_ptr (r); + ensure (BN_mod_exp (r, g_a, b, p, TLS->BN_ctx)); + static unsigned char kk[256]; + memset (kk, 0, sizeof (kk)); + BN_bn2bin (r, kk + (256 - BN_num_bytes (r))); + static unsigned char sha_buffer[20]; + sha1 (kk, 256, sha_buffer); + + long long fingerprint = *(long long *)(sha_buffer + 12); + + //bl_do_encr_chat_set_key (TLS, E, kk, *(long long *)(sha_buffer + 12)); + //bl_do_encr_chat_set_sha (TLS, E, sha_buffer); + + int state = sc_ok; + + bl_do_encr_chat_new (TLS, tgl_get_peer_id (E->id), + NULL, NULL, NULL, NULL, + kk, NULL, sha_buffer, &state, + NULL, NULL, NULL, NULL, NULL, + &fingerprint, + TGL_FLAGS_UNCHANGED + ); + + clear_packet (); + out_int (CODE_messages_accept_encryption); + out_int (CODE_input_encrypted_chat); + out_int (tgl_get_peer_id (E->id)); + out_long (E->access_hash); + + ensure (BN_set_word (g_a, TLS->encr_root)); + ensure (BN_mod_exp (r, g_a, b, p, TLS->BN_ctx)); + static unsigned char buf[256]; + memset (buf, 0, sizeof (buf)); + BN_bn2bin (r, buf + (256 - BN_num_bytes (r))); + out_cstring ((void *)buf, 256); + + out_long (E->key_fingerprint); + BN_clear_free (b); + BN_clear_free (g_a); + BN_clear_free (r); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_accept_methods, E, callback, callback_extra); +} + +void tgl_do_create_keys_end (struct tgl_state *TLS, struct tgl_secret_chat *U) { + assert (TLS->encr_prime); + BIGNUM *g_b = BN_bin2bn (U->g_key, 256, 0); + ensure_ptr (g_b); + assert (tglmp_check_g_a (TLS, TLS->encr_prime_bn, g_b) >= 0); + + BIGNUM *p = TLS->encr_prime_bn; + ensure_ptr (p); + BIGNUM *r = BN_new (); + ensure_ptr (r); + BIGNUM *a = BN_bin2bn ((void *)U->key, 256, 0); + ensure_ptr (a); + ensure (BN_mod_exp (r, g_b, a, p, TLS->BN_ctx)); + + unsigned char *t = talloc (256); + memcpy (t, U->key, 256); + + memset (U->key, 0, sizeof (U->key)); + BN_bn2bin (r, (void *)(((char *)(U->key)) + (256 - BN_num_bytes (r)))); + + static unsigned char sha_buffer[20]; + sha1 ((void *)U->key, 256, sha_buffer); + long long k = *(long long *)(sha_buffer + 12); + if (k != U->key_fingerprint) { + vlogprintf (E_WARNING, "Key fingerprint mismatch (my 0x%llx 0x%llx)\n", (unsigned long long)k, (unsigned long long)U->key_fingerprint); + U->state = sc_deleted; + } + + memcpy (U->first_key_sha, sha_buffer, 20); + tfree_secure (t, 256); + + BN_clear_free (g_b); + BN_clear_free (r); + BN_clear_free (a); +} + +void tgl_do_send_create_encr_chat (struct tgl_state *TLS, void *x, unsigned char *random, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra) { + int user_id = (long)x; + int i; + unsigned char random_here[256]; + tglt_secure_random (random_here, 256); + for (i = 0; i < 256; i++) { + random[i] ^= random_here[i]; + } + BIGNUM *a = BN_bin2bn (random, 256, 0); + ensure_ptr (a); + BIGNUM *p = BN_bin2bn (TLS->encr_prime, 256, 0); + ensure_ptr (p); + + BIGNUM *g = BN_new (); + ensure_ptr (g); + + ensure (BN_set_word (g, TLS->encr_root)); + + BIGNUM *r = BN_new (); + ensure_ptr (r); + + ensure (BN_mod_exp (r, g, a, p, TLS->BN_ctx)); + + BN_clear_free (a); + + static char g_a[256]; + memset (g_a, 0, 256); + + BN_bn2bin (r, (void *)(g_a + (256 - BN_num_bytes (r)))); + + int t = lrand48 (); + while (tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (t))) { + t = lrand48 (); + } + + //bl_do_encr_chat_init (TLS, t, user_id, (void *)random, (void *)g_a); + + int state = sc_waiting; + bl_do_encr_chat_new (TLS, t, NULL, NULL, &TLS->our_id, &user_id, random, NULL, NULL, &state, NULL, NULL, NULL, NULL, NULL, NULL, TGLPF_CREATE | TGLPF_CREATED); + + + tgl_peer_t *_E = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (t)); + assert (_E); + struct tgl_secret_chat *E = &_E->encr_chat; + + clear_packet (); + out_int (CODE_messages_request_encryption); + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (E->user_id)); + assert (U); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (E->user_id); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (E->user_id); + } + out_int (tgl_get_peer_id (E->id)); + out_cstring (g_a, 256); + //write_secret_chat_file (); + + BN_clear_free (g); + BN_clear_free (p); + BN_clear_free (r); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_request_methods, E, callback, callback_extra); +} + +static int get_dh_config_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_dh_config *DS_MDC = D; + + if (DS_MDC->magic == CODE_messages_dh_config) { + assert (DS_MDC->p->len == 256); + bl_do_set_dh_params (TLS, DS_LVAL (DS_MDC->g), (void *)DS_MDC->p->data, DS_LVAL (DS_MDC->version)); + } else { + assert (TLS->encr_param_version); + } + unsigned char *random = talloc (256); + assert (DS_MDC->random->len == 256); + memcpy (random, DS_MDC->random->data, 256); + + if (q->extra) { + void **x = q->extra; + ((void (*)(struct tgl_state *, void *, void *, void *, void *))(*x))(TLS, x[1], random, q->callback, q->callback_extra); + tfree (x, 2 * sizeof (void *)); + tfree_secure (random, 256); + } else { + tfree_secure (random, 256); + } + return 0; +} + +static struct query_methods get_dh_config_methods = { + .on_answer = get_dh_config_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(messages_dh_config) +}; + +void tgl_do_accept_encr_chat_request (struct tgl_state *TLS, struct tgl_secret_chat *E, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra) { + if (E->state != sc_request) { + if (callback) { + callback (TLS, callback_extra, 0, E); + } + return; + } + assert (E->state == sc_request); + + clear_packet (); + out_int (CODE_messages_get_dh_config); + out_int (TLS->encr_param_version); + out_int (256); + void **x = talloc (2 * sizeof (void *)); + x[0] = tgl_do_send_accept_encr_chat; + x[1] = E; + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dh_config_methods, x, callback, callback_extra); +} + +void tgl_do_create_encr_chat_request (struct tgl_state *TLS, int user_id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_get_dh_config); + out_int (TLS->encr_param_version); + out_int (256); + void **x = talloc (2 * sizeof (void *)); + x[0] = tgl_do_send_create_encr_chat; + x[1] = (void *)(long)(user_id); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dh_config_methods, x, callback, callback_extra); +} +/* }}} */ diff --git a/libs/tgl/src/queries.c b/libs/tgl/src/queries.c new file mode 100644 index 0000000000..374f78e1f1 --- /dev/null +++ b/libs/tgl/src/queries.c @@ -0,0 +1,4477 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _FILE_OFFSET_BITS 64 +#include +#include +#include +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#else +#include +#include +#endif +#include +#include +#include +#include + +#include "mtproto-client.h" +#include "queries.h" +#include "tree.h" +#include "mtproto-common.h" +//#include "telegram.h" +#include "tgl-structures.h" +//#include "interface.h" +//#include "net.h" +#include +#include +#include +#include +#include + +#include "no-preview.h" +#include "tgl-binlog.h" +#include "updates.h" +#include "auto.h" +#include "auto/auto-types.h" +#include "auto/auto-skip.h" +#include "auto/auto-free-ds.h" +#include "auto/auto-fetch-ds.h" +#include "auto/auto-print-ds.h" +#include "tgl.h" +#include "tg-mime-types.h" +#include "mtproto-utils.h" +#include "tgl-methods-in.h" + +#define sha1 SHA1 + +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + + +static void out_peer_id (struct tgl_state *TLS, tgl_peer_id_t id); +static struct query_methods send_msgs_methods; + +struct messages_send_extra { + int multi; + long long id; + int count; + long long *list; +}; +#define QUERY_TIMEOUT 6.0 + +struct send_file { + int fd; + long long size; + long long offset; + int part_num; + int part_size; + long long id; + long long thumb_id; + tgl_peer_id_t to_id; + int flags; + char *file_name; + int encr; + int avatar; + int reply; + unsigned char *iv; + unsigned char *init_iv; + unsigned char *key; + int w; + int h; + int duration; + char *caption; +}; + +#define memcmp8(a,b) memcmp ((a), (b), 8) +DEFINE_TREE (query, struct query *, memcmp8, 0) ; + +static int mystreq1 (const char *a, const char *b, int l) { + if ((int)strlen (a) != l) { return 1; } + return memcmp (a, b, l); +} + +/* {{{ COMMON */ + +struct query *tglq_query_get (struct tgl_state *TLS, long long id) { + return tree_lookup_query (TLS->queries_tree, (void *)&id); +} + +static int alarm_query (struct tgl_state *TLS, struct query *q) { + assert (q); + vlogprintf (E_DEBUG - 2, "Alarm query %"_PRINTF_INT64_"d\n", q->msg_id); + + TLS->timer_methods->insert (q->ev, QUERY_TIMEOUT); + + if (q->session && q->session_id && q->DC && q->DC->sessions[0] == q->session && q->session->session_id == q->session_id) { + clear_packet (); + out_int (CODE_msg_container); + out_int (1); + out_long (q->msg_id); + out_int (q->seq_no); + out_int (4 * q->data_len); + out_ints (q->data, q->data_len); + + tglmp_encrypt_send_message (TLS, q->session->c, packet_buffer, packet_ptr - packet_buffer, q->flags & QUERY_FORCE_SEND); + } else { + q->flags &= ~QUERY_ACK_RECEIVED; + if (tree_lookup_query (TLS->queries_tree, q)) { + TLS->queries_tree = tree_delete_query (TLS->queries_tree, q); + } + q->session = q->DC->sessions[0]; + q->msg_id = tglmp_encrypt_send_message (TLS, q->session->c, q->data, q->data_len, (q->flags & QUERY_FORCE_SEND) | 1); + TLS->queries_tree = tree_insert_query (TLS->queries_tree, q, lrand48 ()); + q->session_id = q->session->session_id; + if (!(q->session->dc->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) { + q->session_id = 0; + } + } + return 0; +} + +void tglq_regen_query (struct tgl_state *TLS, long long id) { + struct query *q = tglq_query_get (TLS, id); + if (!q) { return; } + q->flags &= ~QUERY_ACK_RECEIVED; + + if (!(q->session && q->session_id && q->DC && q->DC->sessions[0] == q->session && q->session->session_id == q->session_id)) { + q->session_id = 0; + } else { + if (!(q->session->dc->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) { + q->session_id = 0; + } + } + vlogprintf (E_NOTICE, "regen query %"_PRINTF_INT64_"d\n", id); + TLS->timer_methods->insert (q->ev, 0.001); +} + +void tglq_query_restart (struct tgl_state *TLS, long long id) { + struct query *q = tglq_query_get (TLS, id); + if (q) { + vlogprintf (E_NOTICE, "restarting query %"_PRINTF_INT64_"d\n", id); + TLS->timer_methods->remove (q->ev); + alarm_query (TLS, q); + } +} + +static void alarm_query_gateway (struct tgl_state *TLS, void *arg) { + alarm_query (TLS, arg); +} + + +struct query *tglq_send_query_ex (struct tgl_state *TLS, struct tgl_dc *DC, int ints, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra, int flags) { + assert (DC); + assert (DC->auth_key_id); + if (!DC->sessions[0]) { + tglmp_dc_create_session (TLS, DC); + } + vlogprintf (E_DEBUG, "Sending query of size %d to DC %d\n", 4 * ints, DC->id); + struct query *q = talloc0 (sizeof (*q)); + q->data_len = ints; + q->data = talloc (4 * ints); + memcpy (q->data, data, 4 * ints); + q->msg_id = tglmp_encrypt_send_message (TLS, DC->sessions[0]->c, data, ints, 1 | (flags & QUERY_FORCE_SEND)); + q->session = DC->sessions[0]; + q->seq_no = q->session->seq_no - 1; + q->session_id = q->session->session_id; + if (!(DC->flags & 4) && !(flags & QUERY_FORCE_SEND)) { + q->session_id = 0; + } + vlogprintf (E_DEBUG, "Msg_id is %"_PRINTF_INT64_"d %p\n", q->msg_id, q); + q->methods = methods; + q->type = methods->type; + q->DC = DC; + q->flags = flags & QUERY_FORCE_SEND; + if (TLS->queries_tree) { + vlogprintf (E_DEBUG + 2, "%"_PRINTF_INT64_"d %"_PRINTF_INT64_"d\n", q->msg_id, TLS->queries_tree->x->msg_id); + } + TLS->queries_tree = tree_insert_query (TLS->queries_tree, q, lrand48 ()); + + q->ev = TLS->timer_methods->alloc (TLS, alarm_query_gateway, q); + TLS->timer_methods->insert (q->ev, QUERY_TIMEOUT); + + q->extra = extra; + q->callback = callback; + q->callback_extra = callback_extra; + TLS->active_queries ++; + return q; +} + +struct query *tglq_send_query (struct tgl_state *TLS, struct tgl_dc *DC, int ints, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra) { + return tglq_send_query_ex (TLS, DC, ints, data, methods, extra, callback, callback_extra, 0); +} + +static int fail_on_error (struct tgl_state *TLS, struct query *q, int error_code, int l, const char *error) { + fprintf (stderr, "error #%d: %.*s\n", error_code, l, error); + assert (0); + return 0; +} + +void tglq_query_ack (struct tgl_state *TLS, long long id) { + struct query *q = tglq_query_get (TLS, id); + if (q && !(q->flags & QUERY_ACK_RECEIVED)) { + assert (q->msg_id == id); + q->flags |= QUERY_ACK_RECEIVED; + TLS->timer_methods->remove (q->ev); + } +} + +void tglq_query_delete (struct tgl_state *TLS, long long id) { + struct query *q = tglq_query_get (TLS, id); + if (!q) { + return; + } + if (!(q->flags & QUERY_ACK_RECEIVED)) { + TLS->timer_methods->remove (q->ev); + } + TLS->queries_tree = tree_delete_query (TLS->queries_tree, q); + tfree (q->data, q->data_len * 4); + TLS->timer_methods->free (q->ev); + TLS->active_queries --; +} + +static void resend_query_cb (struct tgl_state *TLS, void *_q, int success); + +void tglq_free_query (struct query *q, void *extra) { + struct tgl_state *TLS = extra; + if (!(q->flags & QUERY_ACK_RECEIVED)) { + TLS->timer_methods->remove (q->ev); + } + tfree (q->data, q->data_len * 4); + TLS->timer_methods->free (q->ev); +} + +void tglq_query_free_all (struct tgl_state *TLS) { + tree_act_ex_query (TLS->queries_tree, tglq_free_query, TLS); + TLS->queries_tree = tree_clear_query (TLS->queries_tree); +} + +int tglq_query_error (struct tgl_state *TLS, long long id) { + assert (fetch_int () == CODE_rpc_error); + int error_code = fetch_int (); + int error_len = prefetch_strlen (); + char *error = fetch_str (error_len); + struct query *q = tglq_query_get (TLS, id); + if (!q) { + vlogprintf (E_WARNING, "error for query #%"_PRINTF_INT64_"d: #%d :%.*s\n", id, error_code, error_len, error); + vlogprintf (E_WARNING, "No such query\n"); + } else { + if (!(q->flags & QUERY_ACK_RECEIVED)) { + TLS->timer_methods->remove (q->ev); + } + TLS->queries_tree = tree_delete_query (TLS->queries_tree, q); + int res = 0; + + int error_handled = 0; + + switch (error_code) { + case 303: + // migrate + { + int offset = -1; + if (error_len >= 15 && !memcmp (error, "PHONE_MIGRATE_", 14)) { + offset = 14; + } + if (error_len >= 17 && !memcmp (error, "NETWORK_MIGRATE_", 16)) { + offset = 16; + } + if (error_len >= 14 && !memcmp (error, "USER_MIGRATE_", 13)) { + offset = 13; + } + if (offset >= 0) { + int i = 0; + while (offset < error_len && error[offset] >= '0' && error[offset] <= '9') { + i = i * 10 + error[offset] - '0'; + offset ++; + } + if (i > 0 && i < TGL_MAX_DC_NUM) { + bl_do_set_working_dc (TLS, i); + q->flags &= ~QUERY_ACK_RECEIVED; + //q->session_id = 0; + //struct tgl_dc *DC = q->DC; + //if (!(DC->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) { + q->session_id = 0; + //} + q->DC = TLS->DC_working; + TLS->timer_methods->insert (q->ev, 0); + error_handled = 1; + res = 1; + } + } + } + break; + case 400: + // nothing to handle + // bad user input probably + break; + case 401: + if (!mystreq1 ("SESSION_PASSWORD_NEEDED", error, error_len)) { + if (!(TLS->locks & TGL_LOCK_PASSWORD)) { + TLS->locks |= TGL_LOCK_PASSWORD; + tgl_do_check_password (TLS, resend_query_cb, q); + } + res = 1; + error_handled = 1; + } + break; + case 403: + // privacy violation + break; + case 404: + // not found + break; + case 420: + // flood + case 500: + // internal error + default: + // anything else. Treated as internal error + { + int wait; + if (strncmp (error, "FLOOD_WAIT_", 11)) { + if (error_code == 420) { + vlogprintf (E_ERROR, "error = '%s'\n", error); + } + wait = 10; + } else { + wait = (int)atoll (error + 11); + } + q->flags &= ~QUERY_ACK_RECEIVED; + TLS->timer_methods->insert (q->ev, wait); + struct tgl_dc *DC = q->DC; + if (!(DC->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) { + q->session_id = 0; + } + error_handled = 1; + } + break; + } + + if (error_handled) { + vlogprintf (E_DEBUG - 2, "error for query #%"_PRINTF_INT64_"d: #%d %.*s (HANDLED)\n", id, error_code, error_len, error); + } else { + vlogprintf (E_WARNING, "error for query #%"_PRINTF_INT64_"d: #%d %.*s\n", id, error_code, error_len, error); + if (q->methods && q->methods->on_error) { + res = q->methods->on_error (TLS, q, error_code, error_len, error); + } + } + + if (res <= 0) { + tfree (q->data, q->data_len * 4); + TLS->timer_methods->free (q->ev); + } + + if (res == -11) { + TLS->active_queries --; + return -1; + + } + } + TLS->active_queries --; + return 0; +} + +#define MAX_PACKED_SIZE (1 << 24) +static int packed_buffer[MAX_PACKED_SIZE / 4]; + +int tglq_query_result (struct tgl_state *TLS, long long id) { + vlogprintf (E_DEBUG, "result for query #%"_PRINTF_INT64_"d. Size %ld bytes\n", id, (long)4 * (in_end - in_ptr)); + int op = prefetch_int (); + int *end = 0; + int *eend = 0; + if (op == CODE_gzip_packed) { + fetch_int (); + int l = prefetch_strlen (); + char *s = fetch_str (l); + int total_out = tgl_inflate (s, l, packed_buffer, MAX_PACKED_SIZE); + vlogprintf (E_DEBUG, "inflated %d bytes\n", total_out); + end = in_ptr; + eend = in_end; + in_ptr = packed_buffer; + in_end = in_ptr + total_out / 4; + } + struct query *q = tglq_query_get (TLS, id); + if (!q) { + vlogprintf (E_WARNING, "No such query\n"); + in_ptr = in_end; + } else { + if (!(q->flags & QUERY_ACK_RECEIVED)) { + TLS->timer_methods->remove (q->ev); + } + TLS->queries_tree = tree_delete_query (TLS->queries_tree, q); + if (q->methods && q->methods->on_answer) { + assert (q->type); + int *save = in_ptr; + vlogprintf (E_DEBUG, "in_ptr = %p, end_ptr = %p\n", in_ptr, in_end); + if (skip_type_any (q->type) < 0) { + vlogprintf (E_ERROR, "Skipped %ld int out of %ld (type %s)\n", (long)(in_ptr - save), (long)(in_end - save), q->type->type->id); + vlogprintf (E_ERROR, "0x%08x 0x%08x\n", *(in_ptr - 1), *in_ptr); + assert (0); + } + + assert (in_ptr == in_end); + in_ptr = save; + + void *DS = fetch_ds_type_any (q->type); + assert (DS); + + q->methods->on_answer (TLS, q, DS); + free_ds_type_any (DS, q->type); + + assert (in_ptr == in_end); + } + tfree (q->data, 4 * q->data_len); + TLS->timer_methods->free (q->ev); + tfree (q, sizeof (*q)); + + } + if (end) { + in_ptr = end; + in_end = eend; + } + TLS->active_queries --; + return 0; +} + +static void out_random (int n) { + assert (n <= 32); + static char buf[32]; + tglt_secure_random (buf, n); + out_cstring (buf, n); +} + +int allow_send_os_version; +void tgl_do_insert_header (struct tgl_state *TLS) { + out_int (CODE_invoke_with_layer); + out_int (TGL_SCHEME_LAYER); + out_int (CODE_init_connection); + out_int (TLS->app_id); + if (allow_send_os_version) { + static char buf[4096]; +#if defined(WIN32) || defined(_WIN32) + SYSTEM_INFO sysInfo; + char release[256] = { 0 }; + char version[256] = { 0 }; + OSVERSIONINFO versionInfo = { sizeof(OSVERSIONINFO), 0, 0, 0, 0,{ '\0' } }; + char* szSystemName = "Windows"; +#if (WINVER <= _WIN32_WINNT_WIN7) + GetVersionEx(&versionInfo); +#else + // GetModuleHandle is not supported in WinRT and linking to it at load time + #if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP || WINAPI_FAMILY==WINAPI_FAMILY_APP + szSystemName = "Windows RT" + MEMORY_BASIC_INFORMATION mbi = { 0, 0, 0, 0, 0, 0, 0 }; + VirtualQuery((LPCVOID)VirtualQuery, &mbi, sizeof(mbi); + HMODULE kernelModule = (HMODULE)mbi.AllocationBase; + + typedef HMODULE(WINAPI *GetModuleHandleFunction)(LPCWSTR); + GetModuleHandleFunction pGetModuleHandle = (GetModuleHandleFunction) GetProcAddressA (kernelModule, "GetModuleHandleW"); + #else + #define pGetModuleHandle GetModuleHandleW + #endif + + #if !defined(WINCE) || !defined(_WIN32_WCE) + #define GetProcAddressA GetProcAddress + #endif + + HMODULE ntdll = pGetModuleHandle (L"ntdll.dll"); + typedef LONG NTSTATUS; + typedef NTSTATUS(NTAPI *RtlGetVersionFunction)(LPOSVERSIONINFO); + + RtlGetVersionFunction pRtlGetVersion = (RtlGetVersionFunction) GetProcAddressA (ntdll, "RtlGetVersion"); + if(pRtlGetVersion) + pRtlGetVersion(&versionInfo); // always returns STATUS_SUCCESS +#endif + if(versionInfo.dwBuildNumber > 0) + _itoa_s(versionInfo.dwBuildNumber, release, sizeof(char) * 256, 10); + if (versionInfo.dwMajorVersion > 0) + sprintf_s(version, sizeof(char) * 256, "%i.%i", versionInfo.dwMajorVersion, versionInfo.dwMinorVersion); + else + strcpy_s(version, sizeof(char) * 256, "Unknown"); + + // Get hardware info + ZeroMemory(&sysInfo, sizeof(SYSTEM_INFO)); + GetSystemInfo(&sysInfo); + + switch (sysInfo.wProcessorArchitecture) { + case PROCESSOR_ARCHITECTURE_AMD64: + out_string("x86_64"); + break; + case PROCESSOR_ARCHITECTURE_IA64: + out_string("ia64"); + break; + case PROCESSOR_ARCHITECTURE_INTEL: + out_string("x86"); + break; + case PROCESSOR_ARCHITECTURE_ARM: + out_string("ARM"); + break; + case PROCESSOR_ARCHITECTURE_PPC: + out_string("PowerPC"); + break; + case PROCESSOR_ARCHITECTURE_MIPS: + out_string("MIPS"); + break; + case PROCESSOR_ARCHITECTURE_MSIL: + out_string("MSIL"); + break; + case PROCESSOR_ARCHITECTURE_SHX: + out_string("ShX"); + break; + case PROCESSOR_ARCHITECTURE_UNKNOWN: + default: + out_string("unknown"); + } + tsnprintf(buf, sizeof(buf) - 1, "%.999s %.999s %.999s", szSystemName, version, release); +#else + struct utsname st; + uname (&st); + out_string (st.machine); + tsnprintf (buf, sizeof (buf) - 1, "%.999s %.999s %.999s", st.sysname, st.release, st.version); +#endif + out_string (buf); + tsnprintf (buf, sizeof (buf) - 1, "%s (TGL %s)", TLS->app_version, TGL_VERSION); + out_string (buf); + out_string ("En"); + } else { +#if defined(WIN32) || defined(_WIN32) + out_string("x86"); + out_string("Windows"); +#else + out_string ("x86"); + out_string ("Linux"); +#endif + static char buf[4096]; + tsnprintf (buf, sizeof (buf) - 1, "%s (TGL %s)", TLS->app_version, TGL_VERSION); + out_string (buf); + out_string ("en"); + } +} + +void tgl_set_query_error (struct tgl_state *TLS, int error_code, const char *format, ...) __attribute__ ((format (printf, 3, 4))); +void tgl_set_query_error (struct tgl_state *TLS, int error_code, const char *format, ...) { + static char s[1001]; + + va_list ap; + va_start (ap, format); + vsnprintf (s, 1000, format, ap); + va_end (ap); + + if (TLS->error) { + tfree_str (TLS->error); + } + TLS->error = tstrdup (s); + TLS->error_code = error_code; +} +/* }}} */ + +/* {{{ Default on error */ + +static int q_void_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int))(q->callback))(TLS, q->callback_extra, 0); + } + return 0; +} + +static int q_ptr_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int, void *))(q->callback))(TLS, q->callback_extra, 0, NULL); + } + return 0; +} + +static int q_list_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int, int, void *))(q->callback))(TLS, q->callback_extra, 0, 0, NULL); + } + return 0; +} +/* }}} */ + +#include "queries-encrypted.c" + +/* {{{ Get config */ + +static void fetch_dc_option (struct tgl_state *TLS, struct tl_ds_dc_option *DS_DO) { + bl_do_dc_option_new (TLS, DS_LVAL (DS_DO->flags), DS_LVAL (DS_DO->id), DS_STR (DS_DO->hostname), DS_STR (DS_DO->ip_address), DS_LVAL (DS_DO->port)); +} + +static int help_get_config_on_answer (struct tgl_state *TLS, struct query *q, void *DS) { + struct tl_ds_config *DS_C = DS; + + int i; + for (i = 0; i < DS_LVAL (DS_C->dc_options->cnt); i++) { + fetch_dc_option (TLS, DS_C->dc_options->data[i]); + } + + int max_chat_size = DS_LVAL (DS_C->chat_size_max); + int max_bcast_size = DS_LVAL (DS_C->broadcast_size_max); + vlogprintf (E_DEBUG, "chat_size = %d, bcast_size = %d\n", max_chat_size, max_bcast_size); + + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int))(q->callback))(TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods help_get_config_methods = { + .on_answer = help_get_config_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(config) +}; + +void tgl_do_help_get_config (struct tgl_state *TLS, void (*callback)(struct tgl_state *,void *, int), void *callback_extra) { + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_help_get_config); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &help_get_config_methods, 0, callback, callback_extra); +} + +void tgl_do_help_get_config_dc (struct tgl_state *TLS, struct tgl_dc *D, void (*callback)(struct tgl_state *, void *, int), void *callback_extra) { + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_help_get_config); + tglq_send_query_ex (TLS, D, packet_ptr - packet_buffer, packet_buffer, &help_get_config_methods, 0, callback, callback_extra, 2); +} +/* }}} */ + +/* {{{ Send code */ +static int send_code_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_auth_sent_code *DS_ASC = D; + + char *phone_code_hash = DS_STR_DUP (DS_ASC->phone_code_hash); + int registered = DS_BVAL (DS_ASC->phone_registered);; + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, const char *))(q->callback)) (TLS, q->callback_extra, 1, registered, phone_code_hash); + } + tfree_str (phone_code_hash); + return 0; +} + +static struct query_methods send_code_methods = { + .on_answer = send_code_on_answer, + .on_error = q_list_on_error, + .type = TYPE_TO_PARAM(auth_sent_code) +}; + +void tgl_do_send_code (struct tgl_state *TLS, const char *phone, int phone_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int registered, const char *hash), void *callback_extra) { + vlogprintf (E_DEBUG, "sending code to dc %d\n", TLS->dc_working_num); + + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_auth_send_code); + out_cstring (phone, phone_len); + out_int (0); + out_int (TLS->app_id); + out_string (TLS->app_hash); + out_string ("en"); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_code_methods, NULL, callback, callback_extra); +} + + +static int phone_call_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int))(q->callback))(TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods phone_call_methods = { + .on_answer = phone_call_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +void tgl_do_phone_call (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + vlogprintf (E_DEBUG, "calling user\n"); + + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_auth_send_call); + out_cstring (phone, phone_len); + out_cstring (hash, hash_len); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &phone_call_methods, NULL, callback, callback_extra); +} +/* }}} */ + +/* {{{ Sign in / Sign up */ +static int sign_in_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_auth_authorization *DS_AA = D; + //vlogprintf (E_DEBUG, "Expires in %d\n", DS_LVAL (DS_AA->expires)); + + struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_AA->user); + + bl_do_dc_signed (TLS, TLS->DC_working->id); + + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 1, U); + } + + return 0; +} + +static int sign_in_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 0, NULL); + } + return 0; +} + +static struct query_methods sign_in_methods = { + .on_answer = sign_in_on_answer, + .on_error = sign_in_on_error, + .type = TYPE_TO_PARAM(auth_authorization) +}; + +int tgl_do_send_code_result (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra) { + clear_packet (); + out_int (CODE_auth_sign_in); + out_cstring (phone, phone_len); + out_cstring (hash, hash_len); + out_cstring (code, code_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra); + return 0; +} + +int tgl_do_send_code_result_auth (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra) { + clear_packet (); + out_int (CODE_auth_sign_up); + out_cstring (phone, phone_len); + out_cstring (hash, hash_len); + out_cstring (code, code_len); + out_cstring (first_name, first_name_len); + out_cstring (last_name, last_name_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra); + return 0; +} + +int tgl_do_send_bot_auth (struct tgl_state *TLS, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra) { + clear_packet (); + out_int (CODE_auth_import_bot_authorization); + out_int (0); + out_int (TLS->app_id); + out_string (TLS->app_hash); + out_cstring (code, code_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra); + return 0; +} +/* }}} */ + +/* {{{ Get contacts */ +static int get_contacts_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_contacts_contacts *DS_CC = D; + + int n = DS_CC->users ? DS_LVAL (DS_CC->users->cnt) : 0; + + int i; + struct tgl_user **list = talloc (sizeof (void *) * n); + for (i = 0; i < n; i++) { + list[i] = tglf_fetch_alloc_user_new (TLS, DS_CC->users->data[i]); + } + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, int, struct tgl_user **))q->callback) (TLS, q->callback_extra, 1, n, list); + } + tfree (list, sizeof (void *) * n); + return 0; +} + +static struct query_methods get_contacts_methods = { + .on_answer = get_contacts_on_answer, + .on_error = q_list_on_error, + .type = TYPE_TO_PARAM(contacts_contacts) +}; + + +void tgl_do_update_contact_list (struct tgl_state *TLS, void (*callback) (struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[]), void *callback_extra) { + clear_packet (); + out_int (CODE_contacts_get_contacts); + out_string (""); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_contacts_methods, NULL, callback, callback_extra); +} +/* }}} */ + +/* {{{ Send msg (plain text) */ +static int msg_send_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_sent_message *DS_MSM = D; + + long long y = *(long long *)q->extra; + tfree (q->extra, 8); + + struct tgl_message *M = tgl_message_get (TLS, y); + vlogprintf (E_DEBUG, "y = %"_PRINTF_INT64_"d\n", y); + + if (M && M->id != DS_LVAL (DS_MSM->id)) { + assert (M->flags & TGLMF_PENDING); + bl_do_create_message_new (TLS, M->id, NULL, NULL, NULL, NULL, NULL, + DS_MSM->date, NULL, 0, DS_MSM->media, NULL, NULL, NULL, M->flags & 0xffff); + } + + struct tl_ds_update *UPD = talloc0 (sizeof (*UPD)); + UPD->magic = CODE_update_message_i_d; + UPD->id = talloc (4); + *UPD->id = DS_LVAL (DS_MSM->id); + UPD->random_id = talloc (8); + *UPD->random_id = y; + UPD->pts_count = talloc (4); + *UPD->pts_count = DS_LVAL (DS_MSM->pts_count); + UPD->pts = talloc (4); + *UPD->pts = DS_LVAL (DS_MSM->pts); + + tglu_work_update_new (TLS, 1, UPD); + tglu_work_update_new (TLS, 0, UPD); + + *UPD->pts_count = 0; + tfree (UPD->random_id, 8); + UPD->magic = CODE_update_msg_update; + + tglu_work_update_new (TLS, 1, UPD); + tglu_work_update_new (TLS, 0, UPD); + + free_ds_type_update (UPD, TYPE_TO_PARAM (update)); + + y = tgls_get_local_by_random (TLS, y); + M = tgl_message_get (TLS, y); + + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 1, M); + } + return 0; +} + +static int msg_send_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + long long x = *(long long *)q->extra; + tfree (q->extra, 8); + struct tgl_message *M = tgl_message_get (TLS, x); + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, M); + } + if (M) { + bl_do_message_delete (TLS, M); + } + return 0; +} + +static struct query_methods msg_send_methods = { + .on_answer = msg_send_on_answer, + .on_error = msg_send_on_error, + .type = TYPE_TO_PARAM(messages_sent_message) +}; + +void tgl_do_send_msg (struct tgl_state *TLS, struct tgl_message *M, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (M->to_id) == TGL_PEER_ENCR_CHAT) { + tgl_do_send_encr_msg (TLS, M, callback, callback_extra); + return; + } + clear_packet (); + out_int (CODE_messages_send_message); + + out_int (((M->flags & TGLMF_DISABLE_PREVIEW) ? 2 : 0) | (M->reply_id ? 1 : 0) | (M->reply_markup ? 4 : 0)); + out_peer_id (TLS, M->to_id); + if (M->reply_id) { + out_int (M->reply_id); + } + out_cstring (M->message, M->message_len); + out_long (M->id); + long long *x = talloc (8); + *x = M->id; + + if (M->reply_markup) { + if (M->reply_markup->rows) { + out_int (CODE_reply_keyboard_markup); + out_int (M->reply_markup->flags); + out_int (CODE_vector); + out_int (M->reply_markup->rows); + int i; + for (i = 0; i < M->reply_markup->rows; i++) { + out_int (CODE_keyboard_button_row); + out_int (CODE_vector); + out_int (M->reply_markup->row_start[i + 1] - M->reply_markup->row_start[i]); + int j; + for (j = 0; j < M->reply_markup->row_start[i + 1] - M->reply_markup->row_start[i]; j++) { + out_int (CODE_keyboard_button); + out_string (M->reply_markup->buttons[j + M->reply_markup->row_start[i]]); + } + } + } else { + out_int (CODE_reply_keyboard_hide); + } + } + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_methods, x, callback, callback_extra); +} + +void tgl_do_send_message (struct tgl_state *TLS, tgl_peer_id_t id, const char *text, int text_len, unsigned long long flags, struct tl_ds_reply_markup *reply_markup, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (!P) { + tgl_set_query_error (TLS, EINVAL, "unknown secret chat"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + if (P->encr_chat.state != sc_ok) { + tgl_set_query_error (TLS, EINVAL, "secret chat not in ok state"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + } + long long t; + tglt_secure_random (&t, 8); + + int peer_type = tgl_get_peer_type (id); + int peer_id = tgl_get_peer_id (id); + int date = (int)time (0); + + if (tgl_get_peer_type (id) != TGL_PEER_ENCR_CHAT) { + int reply = (flags >> 32); + int disable_preview = flags & TGL_SEND_MSG_FLAG_DISABLE_PREVIEW; + if (!(flags & TGL_SEND_MSG_FLAG_ENABLE_PREVIEW) && TLS->disable_link_preview) { + disable_preview = 1; + } + if (disable_preview) { + disable_preview = TGLMF_DISABLE_PREVIEW; + } + struct tl_ds_message_media TDSM; + TDSM.magic = CODE_message_media_empty; + + bl_do_create_message_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, NULL, NULL, &date, text, text_len, &TDSM, NULL, reply ? &reply : NULL, reply_markup, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_SESSION_OUTBOUND | disable_preview); + } else { + struct tl_ds_decrypted_message_media TDSM; + TDSM.magic = CODE_decrypted_message_media_empty; + + bl_do_create_message_encr_new (TLS, t, &TLS->our_id, &peer_type, &peer_id, &date, text, text_len, &TDSM, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | TGLMF_SESSION_OUTBOUND | TGLMF_ENCRYPTED); + } + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + tgl_do_send_msg (TLS, M, callback, callback_extra); +} + +void tgl_do_reply_message (struct tgl_state *TLS, int reply_id, const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, reply_id); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + tgl_peer_id_t id = M->to_id; + if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) { + id = M->from_id; + } + + tgl_do_send_message (TLS, id, text, text_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), NULL, callback, callback_extra); +} +/* }}} */ + +/* {{{ Send text file */ +void tgl_do_send_text (struct tgl_state *TLS, tgl_peer_id_t id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + errno_t err = _sopen_s(&fd, file_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); + if(err != 0) { + tgl_set_query_error(TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno)); +#elif defined(WIN32) || defined(_WIN32) + int fd = open(file_name, O_RDONLY | O_BINARY); + if (fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno)); +#else + int fd = open (file_name, O_RDONLY); + if (fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file: %m"); +#endif + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + return; + } + static char buf[(1 << 20) + 1]; + int x = read (fd, buf, (1 << 20) + 1); + if (x < 0) { +#if defined(WIN32) || defined(_WIN32) + tgl_set_query_error (TLS, EBADF, "Can not read from file: %s", GetErrnoStr (errno)); +#else + tgl_set_query_error (TLS, EBADF, "Can not read from file: %m"); +#endif + close (fd); + + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + return; + } + + assert (x >= 0); + close (fd); + if (x == (1 << 20) + 1) { + tgl_set_query_error (TLS, E2BIG, "text file is too big"); + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + } else { + tgl_do_send_message (TLS, id, buf, x, flags, NULL, callback, callback_extra); + } +} + +void tgl_do_reply_text (struct tgl_state *TLS, int reply_id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, reply_id); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + tgl_peer_id_t id = M->to_id; + if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) { + id = M->from_id; + } + + tgl_do_send_text (TLS, id, file_name, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra); +} +/* }}} */ + +/* {{{ Mark read */ + +struct mark_read_extra { + tgl_peer_id_t id; + int max_id; +}; + +void tgl_do_messages_mark_read (struct tgl_state *TLS, tgl_peer_id_t id, int max_id, int offset, void (*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra); + +static int mark_read_on_receive (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_affected_history *DS_MAH = D; + + int r = tgl_check_pts_diff (TLS, DS_LVAL (DS_MAH->pts), DS_LVAL (DS_MAH->pts_count)); + + if (r > 0) { + bl_do_set_pts (TLS, DS_LVAL (DS_MAH->pts)); + } + + int offset = DS_LVAL (DS_MAH->offset); + + struct mark_read_extra *E = q->extra; + if (offset > 0) { + tgl_do_messages_mark_read (TLS, E->id, E->max_id, offset, q->callback, q->callback_extra); + } else { + if (tgl_get_peer_type (E->id) == TGL_PEER_USER) { + bl_do_user_new (TLS, tgl_get_peer_id (E->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, &E->max_id, NULL, NULL, TGL_FLAGS_UNCHANGED); + } else { + assert (tgl_get_peer_type (E->id) == TGL_PEER_CHAT); + bl_do_chat_new (TLS, tgl_get_peer_id (E->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &E->max_id, NULL, TGL_FLAGS_UNCHANGED); + } + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + } + tfree (E, sizeof (*E)); + return 0; +} + +static int mark_read_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct mark_read_extra *E = q->extra; + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; +} + +static struct query_methods mark_read_methods = { + .on_answer = mark_read_on_receive, + .on_error = mark_read_on_error, + .type = TYPE_TO_PARAM(messages_affected_history) +}; + +void tgl_do_messages_mark_read (struct tgl_state *TLS, tgl_peer_id_t id, int max_id, int offset, void (*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra) { + if (TLS->is_bot) { return; } + clear_packet (); + out_int (CODE_messages_read_history); + out_peer_id (TLS, id); + out_int (max_id); + out_int (offset); + + struct mark_read_extra *E = talloc (sizeof (*E)); + E->id = id; + E->max_id = max_id; + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &mark_read_methods, E, callback, callback_extra); +} + +void tgl_do_mark_read (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_USER || tgl_get_peer_type (id) == TGL_PEER_CHAT) { + tgl_do_messages_mark_read (TLS, id, 0, 0, callback, callback_extra); + return; + } + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (!P) { + tgl_set_query_error (TLS, EINVAL, "unknown secret chat"); + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + assert (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT); + if (P->last) { + tgl_do_messages_mark_read_encr (TLS, id, P->encr_chat.access_hash, P->last->date, callback, callback_extra); + } else { + tgl_do_messages_mark_read_encr (TLS, id, P->encr_chat.access_hash, (int)time (0) - 10, callback, callback_extra); + } +} +/* }}} */ + +/* {{{ Get history */ +struct get_history_extra { + struct tgl_message **ML; + int list_offset; + int list_size; + tgl_peer_id_t id; + int limit; + int offset; + int max_id; +}; + +static void _tgl_do_get_history (struct tgl_state *TLS, struct get_history_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra); + + +static int get_history_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_messages *DS_MM = D; + + struct get_history_extra *E = q->extra; + + int n = DS_LVAL (DS_MM->messages->cnt); + + if (E->list_size - E->list_offset < n) { + int new_list_size = 2 * E->list_size; + if (new_list_size - E->list_offset < n) { + new_list_size = n + E->list_offset; + } + E->ML = trealloc (E->ML, E->list_size * sizeof (void *), new_list_size * sizeof (void *)); + assert (E->ML); + E->list_size = new_list_size; + } + + int i; + for (i = 0; i < n; i++) { + E->ML[i + E->list_offset] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]); + } + E->list_offset += n; + E->offset += n; + E->limit -= n; + + int count = DS_LVAL (DS_MM->count); + if (count >= 0 && E->limit + E->offset >= count) { + E->limit = count - E->offset; + if (E->limit < 0) { E->limit = 0; } + } + assert (E->limit >= 0); + + for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]); + } + + for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]); + } + + + if (E->limit <= 0 || DS_MM->magic == CODE_messages_messages) { + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->ML); + } + if (E->list_offset > 0) { + tgl_do_messages_mark_read (TLS, E->id, E->ML[0]->id, 0, 0, 0); + } + + tfree (E->ML, sizeof (void *) * E->list_size); + tfree (E, sizeof (*E)); + } else { + E->offset = 0; + E->max_id = E->ML[E->list_offset - 1]->id; + _tgl_do_get_history (TLS, E, q->callback, q->callback_extra); + } + return 0; +} + +static int get_history_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct get_history_extra *E = q->extra; + tfree (E->ML, sizeof (void *) * E->list_size); + tfree (E, sizeof (*E)); + + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 0, 0, NULL); + } + return 0; +} + +static struct query_methods get_history_methods = { + .on_answer = get_history_on_answer, + .on_error = get_history_on_error, + .type = TYPE_TO_PARAM(messages_messages) +}; + +void tgl_do_get_local_history (struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) { + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (!P || !P->last) { + tgl_set_query_error (TLS, EINVAL, "unknown peer"); + if (callback) { + callback (TLS, callback_extra, 0, 0, 0); + } + return; + } + struct tgl_message *M = P->last; + int count = 1; + assert (!M->prev); + while (count < limit + offset && M->next) { + M = M->next; + count ++; + } + if (count <= offset) { + if (callback) { + callback (TLS, callback_extra, 1, 0, 0); + } + return; + } + struct tgl_message **ML = talloc (sizeof (void *) * (count - offset)); + M = P->last; + ML[0] = M; + count = 1; + while (count < limit && M->next) { + M = M->next; + if (count >= offset) { + ML[count - offset] = M; + } + count ++; + } + + if (callback) { + callback (TLS, callback_extra, 1, count - offset, ML); + } + tfree (ML, sizeof (void *) * (count) - offset); +} + +static void _tgl_do_get_history (struct tgl_state *TLS, struct get_history_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_get_history); + out_peer_id (TLS, E->id); + out_int (E->offset); + out_int (E->max_id); + out_int (E->limit); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_history_methods, E, callback, callback_extra); +} + +void tgl_do_get_history (struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT || offline_mode) { + tgl_do_get_local_history (TLS, id, offset, limit, callback, callback_extra); + tgl_do_mark_read (TLS, id, 0, 0); + return; + } + struct get_history_extra *E = talloc0 (sizeof (*E)); + E->id = id; + E->limit = limit; + E->offset = offset; + _tgl_do_get_history (TLS, E, callback, callback_extra); +} +/* }}} */ + +/* {{{ Get dialogs */ +struct get_dialogs_extra { + tgl_peer_id_t *PL; + int *UC; + int *LM; + int *LRM; + + int list_offset; + int list_size; + int limit; + int offset; + int max_id; +}; + +static void _tgl_do_get_dialog_list (struct tgl_state *TLS, struct get_dialogs_extra *E, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra); + +static int get_dialogs_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_dialogs *DS_MD = D; + + struct get_dialogs_extra *E = q->extra; + + int dl_size = DS_LVAL (DS_MD->dialogs->cnt); + + if (E->list_offset + dl_size > E->list_size) { + int new_list_size = E->list_size * 2; + if (new_list_size < E->list_offset + dl_size) { + new_list_size = E->list_offset + dl_size; + } + + E->PL = trealloc (E->PL, E->list_size * sizeof (tgl_peer_id_t), new_list_size * sizeof (tgl_peer_id_t)); + assert (E->PL); + E->UC = trealloc (E->UC, E->list_size * sizeof (int), new_list_size * sizeof (int)); + assert (E->UC); + E->LM = trealloc (E->LM, E->list_size * sizeof (int), new_list_size * sizeof (int)); + assert (E->LM); + E->LRM = trealloc (E->LRM, E->list_size * sizeof (int), new_list_size * sizeof (int)); + assert (E->LRM); + + E->list_size = new_list_size; + } + + int i; + for (i = 0; i < dl_size; i++) { + struct tl_ds_dialog *DS_D = DS_MD->dialogs->data[i]; + E->PL[E->list_offset + i] = tglf_fetch_peer_id_new (TLS, DS_D->peer); + E->LM[E->list_offset + i] = DS_LVAL (DS_D->top_message); + E->UC[E->list_offset + i] = DS_LVAL (DS_D->unread_count); + E->LRM[E->list_offset + i] = DS_LVAL (DS_D->read_inbox_max_id); + } + E->list_offset += dl_size; + + for (i = 0; i < DS_LVAL (DS_MD->messages->cnt); i++) { + tglf_fetch_alloc_message_new (TLS, DS_MD->messages->data[i]); + } + + for (i = 0; i < DS_LVAL (DS_MD->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_MD->chats->data[i]); + } + + for (i = 0; i < DS_LVAL (DS_MD->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_MD->users->data[i]); + } + + vlogprintf (E_DEBUG, "dl_size = %d, total = %d\n", dl_size, E->list_offset); + if (dl_size && E->list_offset < E->limit && DS_MD->magic == CODE_messages_dialogs_slice && E->list_offset < DS_LVAL (DS_MD->count)) { + E->offset += dl_size; + _tgl_do_get_dialog_list (TLS, E, q->callback, q->callback_extra); + } else { + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, int, tgl_peer_id_t *, int *, int *))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->PL, E->LM, E->UC); + } + tfree (E->PL, sizeof (tgl_peer_id_t) * E->list_size); + tfree (E->UC, 4 * E->list_size); + tfree (E->LM, 4 * E->list_size); + tfree (E->LRM, 4 * E->list_size); + tfree (E, sizeof (*E)); + } + + return 0; +} + +static int get_dialogs_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct get_dialogs_extra *E = q->extra; + tfree (E->PL, sizeof (tgl_peer_id_t) * E->list_size); + tfree (E->UC, 4 * E->list_size); + tfree (E->LM, 4 * E->list_size); + tfree (E->LRM, 4 * E->list_size); + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *TLS, void *, int, int, tgl_peer_id_t *, int *, int *))q->callback) (TLS, q->callback_extra, 0, 0, NULL, NULL, NULL); + } + return 0; +} + +static struct query_methods get_dialogs_methods = { + .on_answer = get_dialogs_on_answer, + .on_error = get_dialogs_on_error, + .type = TYPE_TO_PARAM(messages_dialogs) +}; + +static void _tgl_do_get_dialog_list (struct tgl_state *TLS, struct get_dialogs_extra *E, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_get_dialogs); + out_int (E->offset); + out_int (0); + out_int (E->limit - E->list_offset); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dialogs_methods, E, callback, callback_extra); +} + +void tgl_do_get_dialog_list (struct tgl_state *TLS, int limit, int offset, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra) { + struct get_dialogs_extra *E = talloc0 (sizeof (*E)); + E->limit = limit; + E->offset = offset; + _tgl_do_get_dialog_list (TLS, E, callback, callback_extra); +} +/* }}} */ + +int allow_send_os_version = 1; + +/* {{{ Send document file */ + +static void out_peer_id (struct tgl_state *TLS, tgl_peer_id_t id) { + tgl_peer_t *U; + switch (tgl_get_peer_type (id)) { + case TGL_PEER_CHAT: + out_int (CODE_input_peer_chat); + out_int (tgl_get_peer_id (id)); + break; + case TGL_PEER_USER: + U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_peer_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_peer_contact); + out_int (tgl_get_peer_id (id)); + } + break; + default: + assert (0); + } +} + +static void send_part (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra); +static int send_file_part_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + send_part (TLS, q->extra, q->callback, q->callback_extra); + return 0; +} + +static int set_photo_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static int send_file_part_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct send_file *f = q->extra; + tfree_str (f->file_name); + tfree_str (f->caption); + if (!f->avatar) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, 0); + } + } else { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 0); + } + } + tfree (f, sizeof (*f)); + return 0; +} + +static struct query_methods send_file_part_methods = { + .on_answer = send_file_part_on_answer, + .on_error = send_file_part_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +static struct query_methods set_photo_methods = { + .on_answer = set_photo_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(photos_photo) +}; + +static void send_avatar_end (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra) { + if (f->avatar > 0) { + out_int (CODE_messages_edit_chat_photo); + out_int (f->avatar); + out_int (CODE_input_chat_uploaded_photo); + if (f->size < (16 << 20)) { + out_int (CODE_input_file); + } else { + out_int (CODE_input_file_big); + } + out_long (f->id); + out_int (f->part_num); + out_string (""); + if (f->size < (16 << 20)) { + out_string (""); + } + out_int (CODE_input_photo_crop_auto); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, NULL, callback, callback_extra); + } else { + out_int (CODE_photos_upload_profile_photo); + if (f->size < (16 << 20)) { + out_int (CODE_input_file); + } else { + out_int (CODE_input_file_big); + } + out_long (f->id); + out_int (f->part_num); + char *s = f->file_name + strlen (f->file_name); + while (s >= f->file_name && *s != '/') { s --;} + out_string (s + 1); + if (f->size < (16 << 20)) { + out_string (""); + } + out_string ("profile photo"); + out_int (CODE_input_geo_point_empty); + out_int (CODE_input_photo_crop_auto); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_photo_methods, 0, callback, callback_extra); + } +} + + +static void send_file_unencrypted_end (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra) { + out_int (CODE_messages_send_media); + out_int ((f->reply ? 1 : 0)); + out_peer_id (TLS, f->to_id); + if (f->reply) { + out_int (f->reply); + } + if (f->flags & TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO) { + out_int (CODE_input_media_uploaded_photo); + } else { + if (f->thumb_id > 0) { + out_int (CODE_input_media_uploaded_thumb_document); + } else { + out_int (CODE_input_media_uploaded_document); + } + } + + if (f->size < (16 << 20)) { + out_int (CODE_input_file); + } else { + out_int (CODE_input_file_big); + } + + out_long (f->id); + out_int (f->part_num); + char *s = f->file_name + strlen (f->file_name); + while (s >= f->file_name && *s != '/') { s --;} + out_string (s + 1); + if (f->size < (16 << 20)) { + out_string (""); + } + + if (!(f->flags & TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO)) { + out_string (tg_mime_by_filename (f->file_name)); + + out_int (CODE_vector); + if (f->flags & TGLDF_IMAGE) { + if (f->flags & TGLDF_ANIMATED) { + out_int (2); + out_int (CODE_document_attribute_image_size); + out_int (f->w); + out_int (f->h); + out_int (CODE_document_attribute_animated); + } else { + out_int (1); + out_int (CODE_document_attribute_image_size); + out_int (f->w); + out_int (f->h); + } + } else if (f->flags & TGLDF_AUDIO) { + out_int (2); + out_int (CODE_document_attribute_audio); + out_int (f->duration); + out_int (CODE_document_attribute_filename); + out_string (s + 1); + } else if (f->flags & TGLDF_VIDEO) { + out_int (2); + out_int (CODE_document_attribute_video); + out_int (f->duration); + out_int (f->w); + out_int (f->h); + out_int (CODE_document_attribute_filename); + out_string (s + 1); + } else if (f->flags & TGLDF_STICKER) { + out_int (1); + out_int (CODE_document_attribute_sticker); + } else { + out_int (1); + out_int (CODE_document_attribute_filename); + out_string (s + 1); + } + + if (f->thumb_id > 0) { + out_int (CODE_input_file); + out_long (f->thumb_id); + out_int (1); + out_string ("thumb.jpg"); + out_string (""); + } + } else { + out_string (f->caption ? f->caption : ""); + } + + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + tglt_secure_random (&E->id, 8); + out_long (E->id); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); + tfree_str (f->file_name); + tfree_str (f->caption); + tfree (f, sizeof (*f)); +} + +static void send_file_end (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra) { + TLS->cur_uploaded_bytes -= f->size; + TLS->cur_uploading_bytes -= f->size; + clear_packet (); + + if (f->avatar) { + send_avatar_end (TLS, f, callback, callback_extra); + return; + } + if (!f->encr) { + send_file_unencrypted_end (TLS, f, callback, callback_extra); + return; + } + send_file_encrypted_end (TLS, f, callback, callback_extra); + return; +} + +static void send_part (struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra) { + if (f->fd >= 0) { + if (!f->part_num) { + TLS->cur_uploading_bytes += f->size; + } + clear_packet (); + if (f->size < (16 << 20)) { + out_int (CODE_upload_save_file_part); + out_long (f->id); + out_int (f->part_num ++); + } else { + out_int (CODE_upload_save_big_file_part); + out_long (f->id); + out_int (f->part_num ++); + out_int ((f->size + f->part_size - 1) / f->part_size); + } + static char buf[512 << 10]; +#ifdef _WIN32 + int x = _read(f->fd, buf, f->part_size); +#else + int x = read (f->fd, buf, f->part_size); +#endif + assert (x > 0); + f->offset += x; + TLS->cur_uploaded_bytes += x; + + if (f->encr) { + if (x & 15) { + assert (f->offset == f->size); + tglt_secure_random (buf + x, (-x) & 15); + x = (x + 15) & ~15; + } + + AES_KEY aes_key; + AES_set_encrypt_key (f->key, 256, &aes_key); + AES_ige_encrypt ((void *)buf, (void *)buf, x, &aes_key, f->iv, 1); + memset (&aes_key, 0, sizeof (aes_key)); + } + out_cstring (buf, x); + vlogprintf (E_DEBUG, "offset=%"_PRINTF_INT64_"d size=%"_PRINTF_INT64_"d\n", f->offset, f->size); + if (f->offset == f->size) { + close (f->fd); + f->fd = -1; + } else { + assert (f->part_size == x); + } + //update_prompt (); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_part_methods, f, callback, callback_extra); + } else { + send_file_end (TLS, f, callback, callback_extra); + } +} + +static void send_file_thumb (struct tgl_state *TLS, struct send_file *f, const void *thumb_data, int thumb_len, void *callback, void *callback_extra) { + clear_packet (); + f->thumb_id = lrand48 () * (1ll << 32) + lrand48 (); + out_int (CODE_upload_save_file_part); + out_long (f->thumb_id); + out_int (0); + out_cstring ((void *)thumb_data, thumb_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_part_methods, f, callback, callback_extra); +} + + +static void _tgl_do_send_photo (struct tgl_state *TLS, tgl_peer_id_t to_id, const char *file_name, int avatar, int w, int h, int duration, const void *thumb_data, int thumb_len, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + int fd = 0; + errno_t err = _sopen_s(&fd, file_name, _O_RDONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); + if(err != 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno)); +#elif defined(WIN32) || defined(_WIN32) + int fd = open(file_name, O_RDONLY | O_BINARY); + if (fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file: %s", GetErrnoStr (errno)); +#else + int fd = open (file_name, O_RDONLY); + if (fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file: %m"); +#endif + if (!avatar) { + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + } else { + if (callback) { + ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 0); + } + } + return; + } + struct stat buf; + fstat (fd, &buf); + long long size = buf.st_size; + if (size <= 0) { + tgl_set_query_error (TLS, EBADF, "File is empty"); + close (fd); + if (!avatar) { + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + } else { + if (callback) { + ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 0); + } + } + return; + } + struct send_file *f = talloc0 (sizeof (*f)); + f->fd = fd; + f->size = size; + f->offset = 0; + f->part_num = 0; + f->avatar = avatar; + f->reply = flags >> 32; + int tmp = ((size + 2999) / 3000); + f->part_size = (1 << 14); + while (f->part_size < tmp) { + f->part_size *= 2; + } + f->flags = flags; + + if (f->part_size > (512 << 10)) { + close (fd); + tgl_set_query_error (TLS, E2BIG, "File is too big"); + tfree (f, sizeof (*f)); + if (!avatar) { + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + } else { + if (callback) { + ((void (*)(struct tgl_state *, void *, int))callback) (TLS, callback_extra, 0); + } + } + return; + } + + tglt_secure_random (&f->id, 8); + f->to_id = to_id; + f->flags = flags; + f->file_name = tstrdup (file_name); + f->w = w; + f->h = h; + f->duration = duration; + f->caption = caption ? tstrdup (caption) : tstrdup (""); + + if (tgl_get_peer_type (f->to_id) == TGL_PEER_ENCR_CHAT) { + f->encr = 1; + f->iv = talloc (32); + tglt_secure_random (f->iv, 32); + f->init_iv = talloc (32); + memcpy (f->init_iv, f->iv, 32); + f->key = talloc (32); + tglt_secure_random (f->key, 32); + } + + if (!f->encr && f->flags != -1 && thumb_len > 0) { + send_file_thumb (TLS, f, thumb_data, thumb_len, callback, callback_extra); + } else { + send_part (TLS, f, callback, callback_extra); + } +} + +void tgl_do_send_document (struct tgl_state *TLS, tgl_peer_id_t to_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (flags & TGL_SEND_MSG_FLAG_DOCUMENT_AUTO) { + char *mime_type = tg_mime_by_filename (file_name); + if (strcmp (mime_type, "image/gif") == 0) { + flags |= TGL_SEND_MSG_FLAG_DOCUMENT_ANIMATED; + } else if (!memcmp (mime_type, "image/", 6)) { + flags |= TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO; + } else if (!memcmp (mime_type, "video/", 6)) { + flags |= TGLDF_VIDEO; + } else if (!memcmp (mime_type, "audio/", 6)) { + flags |= TGLDF_AUDIO; + } + } + _tgl_do_send_photo (TLS, to_id, file_name, 0, 100, 100, 100, 0, 0, caption, caption_len, flags, callback, callback_extra); +} + +void tgl_do_reply_document (struct tgl_state *TLS, int reply_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, reply_id); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + tgl_peer_id_t id = M->to_id; + if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) { + id = M->from_id; + } + + tgl_do_send_document (TLS, id, file_name, caption, caption_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra); +} + +void tgl_do_set_chat_photo (struct tgl_state *TLS, tgl_peer_id_t chat_id, const char *file_name, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success), void *callback_extra) { + assert (tgl_get_peer_type (chat_id) == TGL_PEER_CHAT); + _tgl_do_send_photo (TLS, chat_id, file_name, tgl_get_peer_id (chat_id), 0, 0, 0, 0, 0, NULL, 0, TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO, (void *)callback, callback_extra); +} + +void tgl_do_set_profile_photo (struct tgl_state *TLS, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + _tgl_do_send_photo (TLS, TGL_MK_USER(TLS->our_id), file_name, -1, 0, 0, 0, 0, 0, NULL, 0, TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO, (void *)callback, callback_extra); +} +/* }}} */ + +/* {{{ Profile name */ + +int set_profile_name_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_user *DS_U = D; + struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_U); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 1, U); + } + return 0; +} + +static struct query_methods set_profile_name_methods = { + .on_answer = set_profile_name_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM(user) +}; + +void tgl_do_set_profile_name (struct tgl_state *TLS, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) { + clear_packet (); + out_int (CODE_account_update_profile); + out_cstring (first_name, first_name_len); + out_cstring (last_name, last_name_len); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_profile_name_methods, 0, callback, callback_extra); +} + +void tgl_do_set_username (struct tgl_state *TLS, const char *username, int username_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) { + clear_packet (); + out_int (CODE_account_update_username); + out_cstring (username, username_len); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_profile_name_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Contacts search */ + +int contact_search_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_user *DS_U = D; + + struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, DS_U); + + if (q->callback) { + ((void (*)(struct tgl_state *,void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 1, U); + } + + return 0; +} + +static struct query_methods contact_search_methods = { + .on_answer = contact_search_on_answer, + .on_error = q_list_on_error, + .type = TYPE_TO_PARAM(user) +}; + +void tgl_do_contact_search (struct tgl_state *TLS, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) { + clear_packet (); + out_int (CODE_contacts_resolve_username); + out_cstring (name, name_len); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &contact_search_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Forward */ + +static int send_msgs_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + tglu_work_any_updates_new (TLS, 1, D); + tglu_work_any_updates_new (TLS, 0, D); + + struct messages_send_extra *E = q->extra; + + if (!E) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + } else if (E->multi) { + struct tgl_message **ML = talloc (sizeof (void *) * E->count); + int count = E->count; + int i; + for (i = 0; i < count; i++) { + int y = tgls_get_local_by_random (TLS, E->list[i]); + ML[i] = tgl_message_get (TLS, y); + } + tfree (E->list, sizeof (long long) * count); + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, count, ML); + } + tfree (ML, sizeof (void *) * count); + } else { + int y = tgls_get_local_by_random (TLS, E->id); + struct tgl_message *M = tgl_message_get (TLS, y); + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 1, M); + } + } + return 0; +} + +static int send_msgs_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + struct messages_send_extra *E = q->extra; + + if (!E) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 0); + } + } else if (E->multi) { + int count = E->count; + tfree (E->list, sizeof (long long) * count); + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 0, 0, NULL); + } + } else { + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback) (TLS, q->callback_extra, 0, NULL); + } + } + return 0; +} + +static struct query_methods send_msgs_methods = { + .on_answer = send_msgs_on_answer, + .on_error = send_msgs_on_error, + .type = TYPE_TO_PARAM(updates) +}; + +void tgl_do_forward_messages (struct tgl_state *TLS, tgl_peer_id_t id, int n, const int ids[], unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int count, struct tgl_message *ML[]), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_set_query_error (TLS, EINVAL, "can not forward messages to secret chats"); + if (callback) { + callback (TLS, callback_extra, 0, 0, 0); + } + return; + } + clear_packet (); + out_int (CODE_messages_forward_messages); + out_peer_id (TLS, id); + out_int (CODE_vector); + out_int (n); + int i; + for (i = 0; i < n; i++) { + out_int (ids[i]); + } + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + E->multi = 1; + E->count = n; + E->list = talloc (sizeof (long long) * n); + out_int (CODE_vector); + out_int (n); + for (i = 0; i < n; i++) { + tglt_secure_random (&E->list[i], 8); + out_long (E->list[i]); + } + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); +} + +void tgl_do_forward_message (struct tgl_state *TLS, tgl_peer_id_t id, int msg_id, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_set_query_error (TLS, EINVAL, "can not forward messages to secret chats"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + clear_packet (); + out_int (CODE_messages_forward_message); + out_peer_id (TLS, id); + out_int (msg_id); + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + tglt_secure_random (&E->id, 8); + out_long (E->id); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); +} + +void tgl_do_send_contact (struct tgl_state *TLS, tgl_peer_id_t id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_set_query_error (TLS, EINVAL, "can not send contact to secret chat"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + int reply_id = flags >> 32; + + clear_packet (); + out_int (CODE_messages_send_media); + out_int (reply_id ? 1 : 0); + if (reply_id) { out_int (reply_id); } + out_peer_id (TLS, id); + out_int (CODE_input_media_contact); + out_cstring (phone, phone_len); + out_cstring (first_name, first_name_len); + out_cstring (last_name, last_name_len); + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + tglt_secure_random (&E->id, 8); + out_long (E->id); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); +} + + +void tgl_do_reply_contact (struct tgl_state *TLS, int reply_id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, reply_id); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not reply on message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + tgl_peer_id_t id = M->to_id; + if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) { + id = M->from_id; + } + + tgl_do_send_contact (TLS, id, phone, phone_len, first_name, first_name_len, last_name, last_name_len, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra); +} + +void tgl_do_forward_media (struct tgl_state *TLS, tgl_peer_id_t id, int n, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_set_query_error (TLS, EINVAL, "can not forward messages to secret chats"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + struct tgl_message *M = tgl_message_get (TLS, n); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not forward message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + if (M->media.type != tgl_message_media_photo && M->media.type != tgl_message_media_document) { + tgl_set_query_error (TLS, EINVAL, "can only forward photo/document"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + clear_packet (); + out_int (CODE_messages_send_media); + out_peer_id (TLS, id); + switch (M->media.type) { + case tgl_message_media_photo: + assert (M->media.photo); + out_int (CODE_input_media_photo); + out_int (CODE_input_photo); + out_long (M->media.photo->id); + out_long (M->media.photo->access_hash); + break; + case tgl_message_media_document: + assert (M->media.document); + out_int (CODE_input_media_document); + out_int (CODE_input_document); + out_long (M->media.document->id); + out_long (M->media.document->access_hash); + break; + default: + assert (0); + } + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + tglt_secure_random (&E->id, 8); + out_long (E->id); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); +} +/* }}} */ + +/* {{{ Send location */ + +void tgl_do_send_location (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_do_send_location_encr (TLS, id, latitude, longitude, flags, callback, callback_extra); + } else { + int reply_id = flags >> 32; + clear_packet (); + out_int (CODE_messages_send_media); + out_int (reply_id ? 1 : 0); + if (reply_id) { out_int (reply_id); } + out_peer_id (TLS, id); + out_int (CODE_input_media_geo_point); + out_int (CODE_input_geo_point); + out_double (latitude); + out_double (longitude); + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + tglt_secure_random (&E->id, 8); + out_long (E->id); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); + } +} + +void tgl_do_reply_location (struct tgl_state *TLS, int reply_id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, reply_id); + if (!M || !(M->flags & TGLMF_CREATED) || (M->flags & TGLMF_ENCRYPTED)) { + if (!M || !(M->flags & TGLMF_CREATED)) { + tgl_set_query_error (TLS, EINVAL, "unknown message"); + } else { + tgl_set_query_error (TLS, EINVAL, "can not forward message from secret chat"); + } + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + tgl_peer_id_t id = M->to_id; + if (tgl_get_peer_type (id) == TGL_PEER_USER && tgl_get_peer_id (id) == TLS->our_id) { + id = M->from_id; + } + + tgl_do_send_location (TLS, id, latitude, longitude, flags | TGL_SEND_MSG_FLAG_REPLY (reply_id), callback, callback_extra); +} +/* }}} */ + +/* {{{ Rename chat */ + +void tgl_do_rename_chat (struct tgl_state *TLS, tgl_peer_id_t id, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_edit_chat_title); + assert (tgl_get_peer_type (id) == TGL_PEER_CHAT); + out_int (tgl_get_peer_id (id)); + out_cstring (name, name_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Chat info */ + +static int chat_info_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_chat *C = tglf_fetch_alloc_chat_full_new (TLS, D); + //print_chat_info (C); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_chat *))q->callback) (TLS, q->callback_extra, 1, C); + } + return 0; +} + +static struct query_methods chat_info_methods = { + .on_answer = chat_info_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM(messages_chat_full) +}; + +void tgl_do_get_chat_info (struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *C), void *callback_extra) { + if (offline_mode) { + tgl_peer_t *C = tgl_peer_get (TLS, id); + if (!C) { + tgl_set_query_error (TLS, EINVAL, "unknown chat id"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + } else { + //print_chat_info (&C->chat); + if (callback) { + callback (TLS, callback_extra, 1, &C->chat); + } + } + return; + } + clear_packet (); + out_int (CODE_messages_get_full_chat); + assert (tgl_get_peer_type (id) == TGL_PEER_CHAT); + out_int (tgl_get_peer_id (id)); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &chat_info_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ User info */ + +static int user_info_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_user *U = tglf_fetch_alloc_user_full_new (TLS, D); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 1, U); + } + return 0; +} + +static struct query_methods user_info_methods = { + .on_answer = user_info_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM(user_full) +}; + +void tgl_do_get_user_info (struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_USER) { + tgl_set_query_error (TLS, EINVAL, "id should be user id"); + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + return; + } + if (offline_mode) { + tgl_peer_t *C = tgl_peer_get (TLS, id); + if (!C) { + tgl_set_query_error (TLS, EINVAL, "unknown user id"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + } else { + if (callback) { + callback (TLS, callback_extra, 1, &C->user); + } + } + return; + } + clear_packet (); + out_int (CODE_users_get_full_user); + assert (tgl_get_peer_type (id) == TGL_PEER_USER); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &user_info_methods, 0, callback, callback_extra); +} + +static void resend_query_cb (struct tgl_state *TLS, void *_q, int success) { + assert (success); + + bl_do_dc_signed (TLS, TLS->DC_working->id); + + struct query *q = _q; + + clear_packet (); + out_int (CODE_users_get_full_user); + out_int (CODE_input_user_self); + tglq_send_query (TLS, q->DC, packet_ptr - packet_buffer, packet_buffer, &user_info_methods, 0, q->callback, q->callback_extra); + + tfree (q->data, 4 * q->data_len); + TLS->timer_methods->free (q->ev); + tfree (q, sizeof (*q)); +} +/* }}} */ + +/* {{{ Load photo/video */ +struct download { + int offset; + int size; + long long volume; + long long secret; + long long access_hash; + int local_id; + int dc; + int next; + int fd; + char *name; + char *ext; + long long id; + unsigned char *iv; + unsigned char *key; + int type; + int refcnt; +}; + + +static void end_load (struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra) { + TLS->cur_downloading_bytes -= D->size; + TLS->cur_downloaded_bytes -= D->size; + + if (D->fd >= 0) { + close (D->fd); + } + + if (callback) { + ((void (*)(struct tgl_state *, void *, int, char *))callback) (TLS, callback_extra, 1, D->name); + } + + if (D->iv) { + tfree_secure (D->iv, 32); + } + tfree_str (D->name); + tfree (D, sizeof (*D)); +} + +static void load_next_part (struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra); +static int download_on_answer (struct tgl_state *TLS, struct query *q, void *DD) { + struct tl_ds_upload_file *DS_UF = DD; + + struct download *D = q->extra; + if (D->fd == -1) { +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _sopen_s(&D->fd, D->name, O_CREAT | O_WRONLY | _O_BINARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); + if (err != 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %s", GetErrnoStr (errno)); +#elif defined(WIN32) || defined(_WIN32) + D->fd = open(D->name, O_CREAT | O_WRONLY | O_BINARY, 0640); + if (D->fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %s", GetErrnoStr (errno)); +#else + D->fd = open (D->name, O_CREAT | O_WRONLY, 0640); + if (D->fd < 0) { + tgl_set_query_error (TLS, EBADF, "Can not open file for writing: %m"); +#endif + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, char *))q->callback) (TLS, q->callback_extra, 0, NULL); + } + + if (D->iv) { + tfree_secure (D->iv, 32); + } + tfree_str (D->name); + if (D->ext) { + tfree_str (D->ext); + } + tfree (D, sizeof (*D)); + return 0; + } + } + + int len = DS_UF->bytes->len; + TLS->cur_downloaded_bytes += len; + //update_prompt (); + + if (D->iv) { + assert (!(len & 15)); + void *ptr = DS_UF->bytes->data; + + AES_KEY aes_key; + AES_set_decrypt_key (D->key, 256, &aes_key); + AES_ige_encrypt (ptr, ptr, len, &aes_key, D->iv, 0); + memset (&aes_key, 0, sizeof (aes_key)); + if (len > D->size - D->offset) { + len = D->size - D->offset; + } + assert (write (D->fd, ptr, len) == len); + } else { + assert (write (D->fd, DS_UF->bytes->data, len) == len); + } + + D->offset += len; + D->refcnt --; + if (D->offset < D->size) { + load_next_part (TLS, D, q->callback, q->callback_extra); + return 0; + } else { + if (!D->refcnt) { + end_load (TLS, D, q->callback, q->callback_extra); + } + return 0; + } +} + +static int download_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct download *D = q->extra; + if (D->fd >= 0) { + close (D->fd); + } + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, char *))q->callback) (TLS, q->callback_extra, 0, NULL); + } + + if (D->iv) { + tfree_secure (D->iv, 32); + } + tfree_str (D->name); + if (D->ext) { + tfree_str (D->ext); + } + tfree (D, sizeof (*D)); + return 0; +} + +static struct query_methods download_methods = { + .on_answer = download_on_answer, + .on_error = download_on_error, + .type = TYPE_TO_PARAM(upload_file) +}; + +static void load_next_part (struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra) { + if (!D->offset) { + static char buf[PATH_MAX]; + int l; + if (!D->id) { + l = tsnprintf (buf, sizeof (buf), "%s/download_%"_PRINTF_INT64_"d_%d.jpg", TLS->downloads_directory, D->volume, D->local_id); + } else { + if (D->ext) { + l = tsnprintf (buf, sizeof (buf), "%s/download_%"_PRINTF_INT64_"d.%s", TLS->downloads_directory, D->id, D->ext); + } else { + l = tsnprintf (buf, sizeof (buf), "%s/download_%"_PRINTF_INT64_"d", TLS->downloads_directory, D->id); + } + } + if (l >= (int) sizeof (buf)) { + vlogprintf (E_ERROR, "Download filename is too long"); + assert (0); + } + D->name = tstrdup (buf); + struct stat st; + if (stat (buf, &st) >= 0) { + D->offset = st.st_size; + if (D->offset >= D->size) { + TLS->cur_downloading_bytes += D->size; + TLS->cur_downloaded_bytes += D->offset; + vlogprintf (E_NOTICE, "Already downloaded\n"); + end_load (TLS, D, callback, callback_extra); + return; + } + } + + TLS->cur_downloading_bytes += D->size; + TLS->cur_downloaded_bytes += D->offset; + //update_prompt (); + } + D->refcnt ++; + clear_packet (); + out_int (CODE_upload_get_file); + if (!D->id) { + out_int (CODE_input_file_location); + out_long (D->volume); + out_int (D->local_id); + out_long (D->secret); + } else { + if (D->iv) { + out_int (CODE_input_encrypted_file_location); + } else { + out_int (D->type); + } + out_long (D->id); + out_long (D->access_hash); + } + out_int (D->offset); + out_int (D->size ? (1 << 14) : (1 << 19)); + tglq_send_query (TLS, TLS->DC_list[D->dc], packet_ptr - packet_buffer, packet_buffer, &download_methods, D, callback, callback_extra); + //tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &download_methods, D); +} + +void tgl_do_load_photo_size (struct tgl_state *TLS, struct tgl_photo_size *P, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + if (!P->loc.dc) { + vlogprintf (E_WARNING, "Bad video thumb\n"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + assert (P); + struct download *D = talloc0 (sizeof (*D)); + D->id = 0; + D->offset = 0; + D->size = P->size; + D->volume = P->loc.volume; + D->dc = P->loc.dc; + D->local_id = P->loc.local_id; + D->secret = P->loc.secret; + D->name = 0; + D->fd = -1; + load_next_part (TLS, D, callback, callback_extra); +} + +void tgl_do_load_file_location (struct tgl_state *TLS, struct tgl_file_location *P, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + if (!P->dc) { + tgl_set_query_error (TLS, EINVAL, "Bad file location"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + + assert (P); + struct download *D = talloc0 (sizeof (*D)); + D->id = 0; + D->offset = 0; + D->size = 0; + D->volume = P->volume; + D->dc = P->dc; + D->local_id = P->local_id; + D->secret = P->secret; + D->name = 0; + D->fd = -1; + load_next_part (TLS, D, callback, callback_extra); +} + +void tgl_do_load_photo (struct tgl_state *TLS, struct tgl_photo *photo, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + if (!photo->sizes_num) { + tgl_set_query_error (TLS, EINVAL, "Bad photo (no photo sizes"); + if (callback) { + callback (TLS, callback_extra, 0, 0); + } + return; + } + int max = -1; + int maxi = 0; + int i; + for (i = 0; i < photo->sizes_num; i++) { + if (photo->sizes[i].w + photo->sizes[i].h > max) { + max = photo->sizes[i].w + photo->sizes[i].h; + maxi = i; + } + } + tgl_do_load_photo_size (TLS, &photo->sizes[maxi], callback, callback_extra); +} + +void tgl_do_load_document_thumb (struct tgl_state *TLS, struct tgl_document *video, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + tgl_do_load_photo_size (TLS, &video->thumb, callback, callback_extra); +} + +static void _tgl_do_load_document (struct tgl_state *TLS, struct tgl_document *V, struct download *D, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + assert (V); + D->offset = 0; + D->size = V->size; + D->id = V->id; + D->access_hash = V->access_hash; + D->dc = V->dc_id; + D->name = 0; + D->fd = -1; + + if (V->mime_type) { + char *r = tg_extension_by_mime (V->mime_type); + if (r) { + D->ext = tstrdup (r); + } + } + load_next_part (TLS, D, callback, callback_extra); +} + +void tgl_do_load_document (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + + struct download *D = talloc0 (sizeof (*D)); + D->type = CODE_input_document_file_location; + + _tgl_do_load_document (TLS, V, D, callback, callback_extra); +} + +void tgl_do_load_video (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + + struct download *D = talloc0 (sizeof (*D)); + D->type = CODE_input_video_file_location; + + _tgl_do_load_document (TLS, V, D, callback, callback_extra); +} + +void tgl_do_load_audio (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + + struct download *D = talloc0 (sizeof (*D)); + D->type = CODE_input_audio_file_location; + + _tgl_do_load_document (TLS, V, D, callback, callback_extra); +} + +void tgl_do_load_encr_document (struct tgl_state *TLS, struct tgl_encr_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra) { + assert (V); + struct download *D = talloc0 (sizeof (*D)); + D->offset = 0; + D->size = V->size; + D->id = V->id; + D->access_hash = V->access_hash; + D->dc = V->dc_id; + D->name = 0; + D->fd = -1; + D->key = V->key; + D->iv = talloc (32); + memcpy (D->iv, V->iv, 32); + if (V->mime_type) { + char *r = tg_extension_by_mime (V->mime_type); + if (r) { + D->ext = tstrdup (r); + } + } + load_next_part (TLS, D, callback, callback_extra); + + unsigned char md5[16]; + unsigned char str[64]; + memcpy (str, V->key, 32); + memcpy (str + 32, V->iv, 32); + MD5 (str, 64, md5); + assert (V->key_fingerprint == ((*(int *)md5) ^ (*(int *)(md5 + 4)))); +} +/* }}} */ + +/* {{{ Export auth */ + +static int import_auth_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_auth_authorization *DS_U = D; + tglf_fetch_alloc_user_new (TLS, DS_U->user); + + bl_do_dc_signed (TLS, ((struct tgl_dc *)q->extra)->id); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods import_auth_methods = { + .on_answer = import_auth_on_answer, + .on_error = fail_on_error, + .type = TYPE_TO_PARAM(auth_authorization) +}; + +static int export_auth_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_auth_exported_authorization *DS_EA = D; + + bl_do_set_our_id (TLS, DS_LVAL (DS_EA->id)); + + + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_auth_import_authorization); + out_int (TLS->our_id); + out_cstring (DS_STR (DS_EA->bytes)); + tglq_send_query (TLS, q->extra, packet_ptr - packet_buffer, packet_buffer, &import_auth_methods, q->extra, q->callback, q->callback_extra); + return 0; +} + +static struct query_methods export_auth_methods = { + .on_answer = export_auth_on_answer, + .on_error = fail_on_error, + .type = TYPE_TO_PARAM(auth_exported_authorization) +}; + +void tgl_do_export_auth (struct tgl_state *TLS, int num, void (*callback) (struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_auth_export_authorization); + out_int (num); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_auth_methods, TLS->DC_list[num], callback, callback_extra); +} +/* }}} */ + +/* {{{ Add contact */ +static int add_contact_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_contacts_imported_contacts *DS_CIC = D; + + if (DS_LVAL (DS_CIC->imported->cnt) > 0) { + vlogprintf (E_DEBUG, "Added successfully"); + } else { + vlogprintf (E_DEBUG, "Not added"); + } + + int n = DS_LVAL (DS_CIC->users->cnt); + + struct tgl_user **UL = talloc (n * sizeof (void *)); + int i; + for (i = 0; i < n; i++) { + UL[i] = tglf_fetch_alloc_user_new (TLS, DS_CIC->users->data[i]); + } + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_user **))q->callback) (TLS, q->callback_extra, 1, n, UL); + } + tfree (UL, n * sizeof (void *)); + return 0; +} + +static struct query_methods add_contact_methods = { + .on_answer = add_contact_on_answer, + .on_error = q_list_on_error, + .type = TYPE_TO_PARAM(contacts_imported_contacts) +}; + +void tgl_do_add_contact (struct tgl_state *TLS, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, int force, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra) { + clear_packet (); + out_int (CODE_contacts_import_contacts); + out_int (CODE_vector); + out_int (1); + out_int (CODE_input_phone_contact); + long long r; + tglt_secure_random (&r, 8); + out_long (r); + out_cstring (phone, phone_len); + out_cstring (first_name, first_name_len); + out_cstring (last_name, last_name_len); + out_int (force ? CODE_bool_true : CODE_bool_false); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &add_contact_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Del contact */ +static int del_contact_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods del_contact_methods = { + .on_answer = del_contact_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(contacts_link) +}; + +void tgl_do_del_contact (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_USER) { + tgl_set_query_error (TLS, EINVAL, "id should be user id"); + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + clear_packet (); + out_int (CODE_contacts_delete_contact); + + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &del_contact_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Msg search */ + +struct msg_search_extra { + struct tgl_message **ML; + int list_offset; + int list_size; + tgl_peer_id_t id; + int limit; + int offset; + int from; + int to; + int max_id; + char *query; +}; + +static void _tgl_do_msg_search (struct tgl_state *TLS, struct msg_search_extra *E, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra); + +static int msg_search_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_messages *DS_MM = D; + + struct msg_search_extra *E = q->extra; + + int n = DS_LVAL (DS_MM->messages->cnt); + + if (E->list_size - E->list_offset < n) { + int new_list_size = 2 * E->list_size; + if (new_list_size - E->list_offset < n) { + new_list_size = n + E->list_offset; + } + E->ML = trealloc (E->ML, E->list_size * sizeof (void *), new_list_size * sizeof (void *)); + assert (E->ML); + E->list_size = new_list_size; + } + + int i; + for (i = 0; i < n; i++) { + E->ML[i + E->list_offset] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]); + } + E->list_offset += n; + E->offset += n; + E->limit -= n; + if (E->limit + E->offset >= DS_LVAL (DS_MM->count)) { + E->limit = DS_LVAL (DS_MM->count) - E->offset; + if (E->limit < 0) { E->limit = 0; } + } + assert (E->limit >= 0); + + for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]); + } + for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]); + } + + if (E->limit <= 0 || DS_MM->magic == CODE_messages_messages) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 1, E->list_offset, E->ML); + } + + tfree_str (E->query); + tfree (E->ML, sizeof (void *) * E->list_size); + tfree (E, sizeof (*E)); + } else { + E->max_id = E->ML[E->list_offset - 1]->id; + E->offset = 0; + _tgl_do_msg_search (TLS, E, q->callback, q->callback_extra); + } + return 0; +} + +static int msg_search_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + + struct msg_search_extra *E = q->extra; + tfree_str (E->query); + tfree (E->ML, sizeof (void *) * E->list_size); + tfree (E, sizeof (*E)); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback) (TLS, q->callback_extra, 0, 0, NULL); + } + return 0; +} + +static struct query_methods msg_search_methods = { + .on_answer = msg_search_on_answer, + .on_error = msg_search_on_error, + .type = TYPE_TO_PARAM(messages_messages) +}; + +static void _tgl_do_msg_search (struct tgl_state *TLS, struct msg_search_extra *E, void (*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_search); + if (tgl_get_peer_type (E->id) == TGL_PEER_UNKNOWN) { + out_int (CODE_input_peer_empty); + } else { + out_peer_id (TLS, E->id); + } + + out_string (E->query); + out_int (CODE_input_messages_filter_empty); + out_int (E->from); + out_int (E->to); + out_int (E->offset); // offset + out_int (E->max_id); // max_id + out_int (E->limit); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_search_methods, E, callback, callback_extra); +} + +void tgl_do_msg_search (struct tgl_state *TLS, tgl_peer_id_t id, int from, int to, int limit, int offset, const char *pattern, int pattern_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra) { + if (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT) { + tgl_set_query_error (TLS, EINVAL, "can not search in secret chats"); + if (callback) { + callback (TLS, callback_extra, 0, 0, 0); + } + return; + } + struct msg_search_extra *E = talloc0 (sizeof (*E)); + E->id = id; + E->from = from; + E->to = to; + E->limit = limit; + E->offset = offset; + E->query = tstrndup (pattern, pattern_len); + + _tgl_do_msg_search (TLS, E, callback, callback_extra); +} +/* }}} */ + +/* {{{ Get difference */ + +static int get_state_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_updates_state *DS_US = D; + + assert (TLS->locks & TGL_LOCK_DIFF); + TLS->locks ^= TGL_LOCK_DIFF; + + bl_do_set_pts (TLS, DS_LVAL (DS_US->pts)); + bl_do_set_qts (TLS, DS_LVAL (DS_US->qts)); + bl_do_set_date (TLS, DS_LVAL (DS_US->date)); + bl_do_set_seq (TLS, DS_LVAL (DS_US->seq)); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + return 0; +} + +static int lookup_state_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_updates_state *DS_US = D; + int pts = DS_LVAL (DS_US->pts); + int qts = DS_LVAL (DS_US->qts); + int seq = DS_LVAL (DS_US->seq); + + if (pts > TLS->pts || qts > TLS->qts || seq > TLS->seq) { + tgl_do_get_difference (TLS, 0, 0, 0); + } + return 0; +} + + +//int get_difference_active; +static int get_difference_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_updates_difference *DS_UD = D; + + assert (TLS->locks & TGL_LOCK_DIFF); + TLS->locks ^= TGL_LOCK_DIFF; + + if (DS_UD->magic == CODE_updates_difference_empty) { + bl_do_set_date (TLS, DS_LVAL (DS_UD->date)); + bl_do_set_seq (TLS, DS_LVAL (DS_UD->seq)); + + vlogprintf (E_DEBUG, "Empty difference. Seq = %d\n", TLS->seq); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + } else { + int i; + + for (i = 0; i < DS_LVAL (DS_UD->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_UD->users->data[i]); + } + for (i = 0; i < DS_LVAL (DS_UD->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_UD->chats->data[i]); + } + + int ml_pos = DS_LVAL (DS_UD->new_messages->cnt); + struct tgl_message **ML = talloc (ml_pos * sizeof (void *)); + for (i = 0; i < ml_pos; i++) { + ML[i] = tglf_fetch_alloc_message_new (TLS, DS_UD->new_messages->data[i]); + } + + int el_pos = DS_LVAL (DS_UD->new_encrypted_messages->cnt); + struct tgl_message **EL = talloc (el_pos * sizeof (void *)); + for (i = 0; i < el_pos; i++) { + EL[i] = tglf_fetch_alloc_encrypted_message_new (TLS, DS_UD->new_encrypted_messages->data[i]); + } + + for (i = 0; i < DS_LVAL (DS_UD->other_updates->cnt); i++) { + tglu_work_update_new (TLS, 1, DS_UD->other_updates->data[i]); + } + + for (i = 0; i < DS_LVAL (DS_UD->other_updates->cnt); i++) { + tglu_work_update_new (TLS, -1, DS_UD->other_updates->data[i]); + } + + for (i = 0; i < ml_pos; i++) { + bl_do_msg_update (TLS, ML[i]->id); + } + for (i = 0; i < el_pos; i++) { + bl_do_msg_update (TLS, EL[i]->id); + } + + tfree (ML, ml_pos * sizeof (void *)); + tfree (EL, el_pos * sizeof (void *)); + + if (DS_UD->state) { + bl_do_set_pts (TLS, DS_LVAL (DS_UD->state->pts)); + bl_do_set_qts (TLS, DS_LVAL (DS_UD->state->qts)); + bl_do_set_date (TLS, DS_LVAL (DS_UD->state->date)); + bl_do_set_seq (TLS, DS_LVAL (DS_UD->state->seq)); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + } else { + bl_do_set_pts (TLS, DS_LVAL (DS_UD->intermediate_state->pts)); + bl_do_set_qts (TLS, DS_LVAL (DS_UD->intermediate_state->qts)); + bl_do_set_date (TLS, DS_LVAL (DS_UD->intermediate_state->date)); + + tgl_do_get_difference (TLS, 0, q->callback, q->callback_extra); + } + } + return 0; +} + +static struct query_methods lookup_state_methods = { + .on_answer = lookup_state_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(updates_state) +}; + +static struct query_methods get_state_methods = { + .on_answer = get_state_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(updates_state) +}; + +static struct query_methods get_difference_methods = { + .on_answer = get_difference_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(updates_difference) +}; + +void tgl_do_lookup_state (struct tgl_state *TLS) { + if (TLS->locks & TGL_LOCK_DIFF) { + return; + } + clear_packet (); + tgl_do_insert_header (TLS); + out_int (CODE_updates_get_state); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &lookup_state_methods, 0, 0, 0); +} + +void tgl_do_get_difference (struct tgl_state *TLS, int sync_from_start, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + //get_difference_active = 1; + //difference_got = 0; + if (TLS->locks & TGL_LOCK_DIFF) { + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + TLS->locks |= TGL_LOCK_DIFF; + clear_packet (); + tgl_do_insert_header (TLS); + if (TLS->pts > 0 || sync_from_start) { + if (TLS->pts == 0) { TLS->pts = 1; } + //if (TLS->qts == 0) { TLS->qts = 1; } + if (TLS->date == 0) { TLS->date = 1; } + out_int (CODE_updates_get_difference); + out_int (TLS->pts); + out_int (TLS->date); + out_int (TLS->qts); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_difference_methods, 0, callback, callback_extra); + } else { + out_int (CODE_updates_get_state); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_state_methods, 0, callback, callback_extra); + } +} +/* }}} */ + +/* {{{ Visualize key */ + +int tgl_do_visualize_key (struct tgl_state *TLS, tgl_peer_id_t id, unsigned char buf[16]) { + assert (tgl_get_peer_type (id) == TGL_PEER_ENCR_CHAT); + tgl_peer_t *P = tgl_peer_get (TLS, id); + assert (P); + if (P->encr_chat.state != sc_ok) { + vlogprintf (E_WARNING, "Chat is not initialized yet\n"); + return -1; + } + memcpy (buf, P->encr_chat.first_key_sha, 16); + return 0; +} +/* }}} */ + +/* {{{ Add user to chat */ + +void tgl_do_add_user_to_chat (struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, int limit, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_add_chat_user); + out_int (tgl_get_peer_id (chat_id)); + + assert (tgl_get_peer_type (id) == TGL_PEER_USER); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + out_int (limit); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} + +void tgl_do_del_user_from_chat (struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_delete_chat_user); + out_int (tgl_get_peer_id (chat_id)); + + assert (tgl_get_peer_type (id) == TGL_PEER_USER); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} + +/* }}} */ + +/* {{{ Create secret chat */ + +void tgl_do_create_secret_chat (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra) { + assert (tgl_get_peer_type (id) == TGL_PEER_USER); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (!U) { + tgl_set_query_error (TLS, EINVAL, "Can not create secret chat with unknown user"); + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + return; + } + + tgl_do_create_encr_chat_request (TLS, tgl_get_peer_id (id), callback, callback_extra); +} +/* }}} */ + +/* {{{ Create group chat */ + +void tgl_do_create_group_chat (struct tgl_state *TLS, int users_num, tgl_peer_id_t ids[], const char *chat_topic, int chat_topic_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_create_chat); + out_int (CODE_vector); + out_int (users_num); // Number of users, currently we support only 1 user. + int i; + for (i = 0; i < users_num; i++) { + tgl_peer_id_t id = ids[i]; + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (!U || tgl_get_peer_type (id) != TGL_PEER_USER) { + tgl_set_query_error (TLS, EINVAL, "Can not create chat with unknown user"); + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + } + out_cstring (chat_topic, chat_topic_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Delete msg */ + +static int delete_msg_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_affected_messages *DS_MAM = D; + + struct tgl_message *M = tgl_message_get (TLS, (long)q->extra); + if (M) { + bl_do_message_delete (TLS, M); + } + + int r = tgl_check_pts_diff (TLS, DS_LVAL (DS_MAM->pts), DS_LVAL (DS_MAM->pts_count)); + + if (r > 0) { + bl_do_set_pts (TLS, DS_LVAL (DS_MAM->pts)); + } + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods delete_msg_methods = { + .on_answer = delete_msg_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(messages_affected_messages) +}; + +void tgl_do_delete_msg (struct tgl_state *TLS, long long id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_delete_messages); + out_int (CODE_vector); + out_int (1); + out_int (id); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &delete_msg_methods, (void *)(long)id, callback, callback_extra); +} +/* }}} */ + +/* {{{ Export card */ + +static int export_card_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_vector *DS_V = D; + + int n = DS_LVAL (DS_V->f1); + + int *r = talloc (4 * n); + int i; + for (i = 0; i < n; i++) { + r[i] = *(int *)DS_V->f2[i]; + } + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, int, int *))q->callback) (TLS, q->callback_extra, 1, n, r); + } + tfree (r, 4 * n); + return 0; +} + +static struct query_methods export_card_methods = { + .on_answer = export_card_on_answer, + .on_error = q_list_on_error, + .type = TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM (bare_int)) +}; + +void tgl_do_export_card (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, int *card), void *callback_extra) { + clear_packet (); + out_int (CODE_contacts_export_card); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_card_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Import card */ + +static int import_card_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_user *U = tglf_fetch_alloc_user_new (TLS, D); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback) (TLS, q->callback_extra, 1, U); + } + return 0; +} + +static struct query_methods import_card_methods = { + .on_answer = import_card_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM (user) +}; + +void tgl_do_import_card (struct tgl_state *TLS, int size, int *card, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra) { + clear_packet (); + out_int (CODE_contacts_import_card); + out_int (CODE_vector); + out_int (size); + out_ints (card, size); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &import_card_methods, 0, callback, callback_extra); +} +/* }}} */ + +void tgl_do_start_bot (struct tgl_state *TLS, tgl_peer_id_t bot, tgl_peer_id_t chat, const char *str, int str_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_messages_start_bot); + struct tgl_user *U = (void *)tgl_peer_get (TLS, bot); + if (U && U->access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (bot)); + out_long (U->access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (bot)); + } + out_int (tgl_get_peer_id (chat)); + long long m; + tglt_secure_random (&m, 8); + out_long (m); + out_cstring (str, str_len); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} + +/* {{{ Send typing */ +static int send_typing_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods send_typing_methods = { + .on_answer = send_typing_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +void tgl_do_send_typing (struct tgl_state *TLS, tgl_peer_id_t id, enum tgl_typing_status status, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_ENCR_CHAT) { + clear_packet (); + out_int (CODE_messages_set_typing); + out_peer_id (TLS, id); + switch (status) { + case tgl_typing_none: + case tgl_typing_typing: + out_int (CODE_send_message_typing_action); + break; + case tgl_typing_cancel: + out_int (CODE_send_message_cancel_action); + break; + case tgl_typing_record_video: + out_int (CODE_send_message_record_video_action); + break; + case tgl_typing_upload_video: + out_int (CODE_send_message_upload_video_action); + break; + case tgl_typing_record_audio: + out_int (CODE_send_message_record_audio_action); + break; + case tgl_typing_upload_audio: + out_int (CODE_send_message_upload_audio_action); + break; + case tgl_typing_upload_photo: + out_int (CODE_send_message_upload_photo_action); + break; + case tgl_typing_upload_document: + out_int (CODE_send_message_upload_document_action); + break; + case tgl_typing_geo: + out_int (CODE_send_message_geo_location_action); + break; + case tgl_typing_choose_contact: + out_int (CODE_send_message_choose_contact_action); + break; + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_typing_methods, 0, callback, callback_extra); + } else { + if (callback) { + callback (TLS, callback_extra, 0); + } + } +} +/* }}} */ + +/* {{{ Extd query */ +#ifndef DISABLE_EXTF + + +char *tglf_extf_print_ds (struct tgl_state *TLS, void *DS, struct paramed_type *T); + +static int ext_query_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + char *buf = tglf_extf_print_ds (TLS, D, q->type); + ((void (*)(struct tgl_state *, void *, int, char *))q->callback) (TLS, q->callback_extra, 1, buf); + } + tgl_paramed_type_free (q->type); + return 0; +} + +static struct query_methods ext_query_methods = { + .on_answer = ext_query_on_answer, + .on_error = q_list_on_error +}; + +void tgl_do_send_extf (struct tgl_state *TLS, const char *data, int data_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *buf), void *callback_extra) { + clear_packet (); + + ext_query_methods.type = tglf_extf_store (TLS, data, data_len); + + if (ext_query_methods.type) { + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &ext_query_methods, 0, callback, callback_extra); + } +} +#else +void tgl_do_send_extf (struct tgl_state *TLS, char *data, int data_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *buf), void *callback_extra) { + if (callback) { + callback (TLS, callback_extra, 0, 0); + } +} +#endif +/* }}} */ + +/* {{{ get messages */ + +static int get_messages_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_messages_messages *DS_MM = D; + + int i; + for (i = 0; i < DS_LVAL (DS_MM->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_MM->users->data[i]); + } + for (i = 0; i < DS_LVAL (DS_MM->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_MM->chats->data[i]); + } + + struct tgl_message **ML; + if (q->extra) { + ML = talloc0 (sizeof (void *) * DS_LVAL (DS_MM->messages->cnt)); + } else { + static struct tgl_message *M; + M = NULL; + ML = &M; + assert (DS_LVAL (DS_MM->messages->cnt) <= 1); + } + for (i = 0; i < DS_LVAL (DS_MM->messages->cnt); i++) { + ML[i] = tglf_fetch_alloc_message_new (TLS, DS_MM->messages->data[i]); + } + if (q->callback) { + if (q->extra) { + ((void (*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 1, DS_LVAL (DS_MM->messages->cnt), ML); + } else { + if (DS_LVAL (DS_MM->messages->cnt) > 0) { + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, *ML); + } else { + tgl_set_query_error (TLS, ENOENT, "no such message"); + ((void (*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 0, NULL); + } + } + } + if (q->extra) { + tfree (ML, sizeof (void *) * DS_LVAL (DS_MM->messages->cnt)); + } + return 0; +} + +static struct query_methods get_messages_methods = { + .on_answer = get_messages_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM (messages_messages) +}; + +void tgl_do_get_message (struct tgl_state *TLS, long long id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra) { + struct tgl_message *M = tgl_message_get (TLS, id); + if (M) { + if (callback) { + callback (TLS, callback_extra, 1, M); + } + return; + } + + clear_packet (); + + out_int (CODE_messages_get_messages); + out_int (CODE_vector); + out_int (1); + out_int (id); + + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_messages_methods, 0, callback, callback_extra); +} +/* }}} */ + +/* {{{ Export/import chat link */ +static int export_chat_link_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_exported_chat_invite *DS_ECI = D; + + char *s = DS_STR_DUP (DS_ECI->link); + + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int, const char *))q->callback)(TLS, q->callback_extra, s ? 1 : 0, s); + } + tfree_str (s); + return 0; +} + + +static struct query_methods export_chat_link_methods = { + .on_answer = export_chat_link_on_answer, + .on_error = q_ptr_on_error, + .type = TYPE_TO_PARAM(exported_chat_invite) +}; + +void tgl_do_export_chat_link (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *link), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_CHAT) { + tgl_set_query_error (TLS, EINVAL, "Can only export chat link for chat"); + if (callback) { + callback (TLS, callback_extra, 0, NULL); + } + return; + } + + clear_packet (); + out_int (CODE_messages_export_chat_invite); + out_int (tgl_get_peer_id (id)); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_chat_link_methods, 0, callback, callback_extra); +} + +void tgl_do_import_chat_link (struct tgl_state *TLS, const char *link, int len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + const char *l = link + len - 1; + while (l >= link && *l != '/') { + l --; + } + l ++; + + clear_packet (); + out_int (CODE_messages_import_chat_invite); + out_cstring (l, len - (l - link)); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, 0, callback, callback_extra); +} + +/* }}} */ + +/* {{{ set password */ +static int set_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static int set_password_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + if (error_code == 400) { + if (!strcmp (error, "PASSWORD_HASH_INVALID")) { + vlogprintf (E_WARNING, "Bad old password\n"); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; + } + if (!strcmp (error, "NEW_PASSWORD_BAD")) { + vlogprintf (E_WARNING, "Bad new password (unchanged or equals hint)\n"); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; + } + if (!strcmp (error, "NEW_SALT_INVALID")) { + vlogprintf (E_WARNING, "Bad new salt\n"); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; + } + } + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; +} + +static struct query_methods set_password_methods = { + .on_answer = set_password_on_answer, + .on_error = set_password_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +static void tgl_do_act_set_password (struct tgl_state *TLS, const char *current_password, int current_password_len, const char *new_password, int new_password_len, const char *current_salt, int current_salt_len, const char *new_salt, int new_salt_len, const char *hint, int hint_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + static char s[512]; + static unsigned char shab[32]; + + assert (current_salt_len <= 128); + assert (current_password_len <= 128); + assert (new_salt_len <= 128); + assert (new_password_len <= 128); + + out_int (CODE_account_update_password_settings); + + if (current_password_len && current_salt_len) { + memcpy (s, current_salt, current_salt_len); + memcpy (s + current_salt_len, current_password, current_password_len); + memcpy (s + current_salt_len + current_password_len, current_salt, current_salt_len); + + SHA256 ((void *)s, 2 * current_salt_len + current_password_len, shab); + out_cstring ((void *)shab, 32); + } else { + out_string (""); + } + + out_int (CODE_account_password_input_settings); + if (new_password_len) { + out_int (1); + + static char d[256]; + memcpy (d, new_salt, new_salt_len); + + int l = new_salt_len; + tglt_secure_random (d + l, 16); + l += 16; + memcpy (s, d, l); + + memcpy (s + l, new_password, new_password_len); + memcpy (s + l + new_password_len, d, l); + + SHA256 ((void *)s, 2 * l + new_password_len, shab); + + out_cstring (d, l); + out_cstring ((void *)shab, 32); + out_cstring (hint, hint_len); + } else { + out_int (0); + } + + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_password_methods, 0, callback, callback_extra); +} + +struct change_password_extra { + char *current_password; + char *new_password; + char *current_salt; + char *new_salt; + char *hint; + int current_password_len; + int new_password_len; + int current_salt_len; + int new_salt_len; + int hint_len; + void (*callback)(struct tgl_state *, void *, int); + void *callback_extra; +}; + +void tgl_on_new_pwd (struct tgl_state *TLS, const char *pwd[], void *_T); +void tgl_on_new2_pwd (struct tgl_state *TLS, const char *pwd, void *_T) { + struct change_password_extra *E = _T; + if (strlen (pwd) != (size_t)E->new_password_len || memcmp (E->new_password, pwd, E->new_password_len)) { + tfree (E->new_password, E->new_password_len); + E->new_password = NULL; + E->new_password_len = 0; + vlogprintf (E_ERROR, "passwords do not match\n"); + TLS->callback.get_values (TLS, tgl_new_password, "new password: ", 2, tgl_on_new_pwd, E); + return; + } + tgl_do_act_set_password (TLS, E->current_password, E->current_password_len, + E->new_password, E->new_password_len, + E->current_salt, E->current_salt_len, + E->new_salt, E->new_salt_len, + E->hint, E->hint_len, + E->callback, E->callback_extra); + + tfree (E->current_password, E->current_password_len); + tfree (E->new_password, E->new_password_len); + tfree (E->current_salt, E->current_salt_len); + tfree (E->new_salt, E->new_salt_len); + tfree_str (E->hint); + tfree (E, sizeof (*E)); +} + +void tgl_on_new_pwd (struct tgl_state *TLS, const char *pwd[], void *_T) { + struct change_password_extra *E = _T; + E->new_password_len = strlen (pwd[0]); + E->new_password = tmemdup (pwd[0], E->new_password_len); + tgl_on_new2_pwd(TLS, pwd[1], E); +} + +void tgl_on_old_pwd (struct tgl_state *TLS, const char *pwd[], void *_T) { + struct change_password_extra *E = _T; + E->current_password_len = strlen (pwd[0]); + E->current_password = tmemdup (pwd[0], E->current_password_len); + tgl_on_new_pwd(TLS, pwd + 1, E); +} + +static int set_get_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_account_password *DS_AP = D; + + char *new_hint = q->extra; + + struct change_password_extra *E = talloc0 (sizeof (*E)); + + if (DS_AP->current_salt) { + E->current_salt_len = DS_AP->current_salt->len; + E->current_salt = tmemdup (DS_AP->current_salt->data, E->current_salt_len); + } + if (DS_AP->new_salt) { + E->new_salt_len = DS_AP->new_salt->len; + E->new_salt = tmemdup (DS_AP->new_salt->data, E->new_salt_len); + } + + if (new_hint) { + E->hint_len = strlen (new_hint); + E->hint = new_hint; + } + + E->callback = q->callback; + E->callback_extra = q->callback_extra; + + if (DS_AP->magic == CODE_account_no_password) { + TLS->callback.get_values (TLS, tgl_new_password, "new password: ", 2, tgl_on_new_pwd, E); + } else { + static char s[512]; + snprintf (s, 511, "old password (hint %.*s): ", DS_RSTR (DS_AP->hint)); + TLS->callback.get_values (TLS, tgl_cur_and_new_password, s, 3, tgl_on_old_pwd, E); + } + return 0; +} + +static struct query_methods set_get_password_methods = { + .on_answer = set_get_password_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(account_password) +}; + +void tgl_do_set_password (struct tgl_state *TLS, const char *hint, int hint_len, void (*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_account_get_password); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_get_password_methods, hint ? tstrndup (hint, hint_len) : NULL, callback, callback_extra); +} + +/* }}} */ + +/* {{{ check password */ +static int check_password_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + if (error_code == 400) { + vlogprintf (E_ERROR, "bad password\n"); + tgl_do_check_password (TLS, q->callback, q->callback_extra); + return 0; + } + TLS->locks ^= TGL_LOCK_PASSWORD; + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0); + } + return 0; +} + +static int check_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + TLS->locks ^= TGL_LOCK_PASSWORD; + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods check_password_methods = { + .on_answer = check_password_on_answer, + .on_error = check_password_on_error, + .type = TYPE_TO_PARAM(auth_authorization) +}; + + +struct check_password_extra { + char *current_salt; + int current_salt_len; + void (*callback)(struct tgl_state *, void *, int); + void *callback_extra; +}; + +static void tgl_pwd_got (struct tgl_state *TLS, const char *pwd[], void *_T) { + struct check_password_extra *E = _T; + + clear_packet (); + static char s[512]; + static unsigned char shab[32]; + + assert (E->current_salt_len <= 128); + assert (strlen (pwd[0]) <= 128); + + out_int (CODE_auth_check_password); + + if (pwd[0] && E->current_salt_len) { + int l = E->current_salt_len; + memcpy (s, E->current_salt, l); + + int r = strlen (pwd[0]); +#if defined(_MSC_VER) && _MSC_VER >= 1400 + strcpy_s (s + l, 512 -l, pwd[0]); +#else + strcpy (s + l, pwd[0]); +#endif + + memcpy (s + l + r, E->current_salt, l); + + SHA256 ((void *)s, 2 * l + r, shab); + out_cstring ((void *)shab, 32); + } else { + out_string (""); + } + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &check_password_methods, 0, E->callback, E->callback_extra); + + tfree (E->current_salt, E->current_salt_len); + tfree (E, sizeof (*E)); +} + +static int check_get_password_on_error (struct tgl_state *TLS, struct query *q, int error_code, int error_len, const char *error) { + TLS->locks ^= TGL_LOCK_PASSWORD; + tgl_set_query_error (TLS, EPROTO, "RPC_CALL_FAIL %d: %.*s", error_code, error_len, error); + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 0); + } + return 0; +} + +static int check_get_password_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tl_ds_account_password *DS_AP = D; + + if (DS_AP->magic == CODE_account_no_password) { + TLS->locks ^= TGL_LOCK_PASSWORD; + return 0; + } + static char s[512]; + snprintf (s, 511, "type password (hint %.*s): ", DS_RSTR (DS_AP->hint)); + + struct check_password_extra *E = talloc0 (sizeof (*E)); + + if (DS_AP->current_salt) { + E->current_salt_len = DS_AP->current_salt->len; + E->current_salt = tmemdup (DS_AP->current_salt->data, E->current_salt_len); + } + + E->callback = q->callback; + E->callback_extra = q->callback_extra; + + TLS->callback.get_values (TLS, tgl_cur_password, s, 1, tgl_pwd_got, E); + return 0; +} + +static struct query_methods check_get_password_methods = { + .on_answer = check_get_password_on_answer, + .on_error = check_get_password_on_error, + .type = TYPE_TO_PARAM(account_password) +}; + +void tgl_do_check_password (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_account_get_password); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &check_get_password_methods, NULL, callback, callback_extra); +} + +/* }}} */ + +/* {{{ send broadcast */ +void tgl_do_send_broadcast (struct tgl_state *TLS, int num, tgl_peer_id_t id[], const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra) { + + assert (num <= 1000); + + struct messages_send_extra *E = talloc0 (sizeof (*E)); + E->multi = 1; + E->count = num; + E->list = talloc (sizeof (long long) * num); + + int date = (int)time (0); + struct tl_ds_message_media TDSM; + TDSM.magic = CODE_message_media_empty; + + int i; + for (i = 0; i < num; i++) { + tglt_secure_random (&E->list[i], 8); + + int peer_type = tgl_get_peer_type (id[i]); + int peer_id = tgl_get_peer_id (id[i]); + assert (tgl_get_peer_type (id[i]) == TGL_PEER_USER); + + int disable_preview = flags & TGL_SEND_MSG_FLAG_DISABLE_PREVIEW; + if (!(flags & TGL_SEND_MSG_FLAG_ENABLE_PREVIEW) && TLS->disable_link_preview) { + disable_preview = 1; + } + if (disable_preview) { + disable_preview = TGLMF_DISABLE_PREVIEW; + } + + bl_do_create_message_new (TLS, E->list[i], &TLS->our_id, &peer_type, &peer_id, NULL, NULL, &date, text, text_len, &TDSM, NULL, NULL, NULL, TGLMF_UNREAD | TGLMF_OUT | TGLMF_PENDING | TGLMF_CREATE | TGLMF_CREATED | disable_preview); + } + + clear_packet (); + out_int (CODE_messages_send_broadcast); + out_int (CODE_vector); + out_int (num); + for (i = 0; i < num; i++) { + assert (tgl_get_peer_type (id[i]) == TGL_PEER_USER); + + struct tgl_user *U = (void *)tgl_peer_get (TLS, id[i]); + if (U && U->access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id[i])); + out_long (U->access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id[i])); + } + } + + out_int (CODE_vector); + out_int (num); + for (i = 0; i < num; i++) { + out_long (E->list[i]); + } + out_cstring (text, text_len); + + out_int (CODE_message_media_empty); + + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_msgs_methods, E, callback, callback_extra); +} +/* }}} */ + +/* {{{ block user */ +static int block_user_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods block_user_methods = { + .on_answer = block_user_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM (bool) +}; + +void tgl_do_block_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_USER) { + tgl_set_query_error (TLS, EINVAL, "id should be user id"); + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + + clear_packet (); + + out_int (CODE_contacts_block); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &block_user_methods, 0, callback, callback_extra); +} + +void tgl_do_unblock_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + if (tgl_get_peer_type (id) != TGL_PEER_USER) { + tgl_set_query_error (TLS, EINVAL, "id should be user id"); + if (callback) { + callback (TLS, callback_extra, 0); + } + return; + } + + clear_packet (); + + out_int (CODE_contacts_unblock); + tgl_peer_t *U = tgl_peer_get (TLS, id); + if (U && U->user.access_hash) { + out_int (CODE_input_user_foreign); + out_int (tgl_get_peer_id (id)); + out_long (U->user.access_hash); + } else { + out_int (CODE_input_user_contact); + out_int (tgl_get_peer_id (id)); + } + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &block_user_methods, 0, callback, callback_extra); +} +/* }}} */ + + + +static void set_flag_4 (struct tgl_state *TLS, void *_D, int success) { + struct tgl_dc *D = _D; + assert (success); + D->flags |= 4; + + TLS->timer_methods->insert (D->ev, TLS->temp_key_expire_time * 0.9); +} + +static int send_bind_temp_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + struct tgl_dc *DC = q->extra; + DC->flags |= 2; + tgl_do_help_get_config_dc (TLS, DC, set_flag_4, DC); + vlogprintf (E_DEBUG, "Bind successful in dc %d\n", DC->id); + return 0; +} + +static int send_bind_on_error (struct tgl_state *TLS, struct query *q, int error_code, int l, const char *error) { + vlogprintf (E_WARNING, "bind: error %d: %.*s\n", error_code, l, error); + if (error_code == 400) { + return -11; + } + return 0; +} + +static struct query_methods send_bind_temp_methods = { + .on_answer = send_bind_temp_on_answer, + .on_error = send_bind_on_error, + .type = TYPE_TO_PARAM (bool) +}; + +void tgl_do_send_bind_temp_key (struct tgl_state *TLS, struct tgl_dc *D, long long nonce, int expires_at, void *data, int len, long long msg_id) { + clear_packet (); + out_int (CODE_auth_bind_temp_auth_key); + out_long (D->auth_key_id); + out_long (nonce); + out_int (expires_at); + out_cstring (data, len); + struct query *q = tglq_send_query_ex (TLS, D, packet_ptr - packet_buffer, packet_buffer, &send_bind_temp_methods, D, 0, 0, 2); + assert (q->msg_id == msg_id); +} + +static int update_status_on_answer (struct tgl_state *TLS, struct query *q, void *D) { + if (q->callback) { + ((void (*)(struct tgl_state *, void *, int))q->callback) (TLS, q->callback_extra, 1); + } + return 0; +} + +static struct query_methods update_status_methods = { + .on_answer = update_status_on_answer, + .on_error = q_void_on_error, + .type = TYPE_TO_PARAM(bool) +}; + +void tgl_do_update_status (struct tgl_state *TLS, int online, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra) { + clear_packet (); + out_int (CODE_account_update_status); + out_int (online ? CODE_bool_false : CODE_bool_true); + tglq_send_query (TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &update_status_methods, 0, callback, callback_extra); +} + + +void tgl_do_request_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E) { + /*static unsigned char s[256]; + tglt_secure_random (s, 256); + + long long id; + tglt_secure_random (&id, 8); + + //bl_do_encr_chat_exchange_request (TLS, E, id, s); + int rst = tgl_sce_requested; + bl_do_encr_chat_exchange_new (TLS, E, &id, NULL, &rst); + + BIGNUM *a = BN_bin2bn (s, 256, 0); + ensure_ptr (a); + BIGNUM *p = BN_bin2bn (TLS->encr_prime, 256, 0); + ensure_ptr (p); + + BIGNUM *g = BN_new (); + ensure_ptr (g); + + ensure (BN_set_word (g, TLS->encr_root)); + + BIGNUM *r = BN_new (); + ensure_ptr (r); + + ensure (BN_mod_exp (r, g, a, p, TLS->BN_ctx)); + + static unsigned char kk[256]; + memset (kk, 0, sizeof (kk)); + BN_bn2bin (r, kk + (256 - BN_num_bytes (r))); + + BN_clear_free (a); + BN_clear_free (g); + BN_clear_free (p); + BN_clear_free (r); + + static int action[70]; + action[0] = CODE_decrypted_message_action_request_key; + *(long long *)(action + 1) = E->exchange_id; + action[3] = 0x100fe; + memcpy (action + 4, kk, 256); + + long long t; + tglt_secure_random (&t, 8); + + bl_do_send_message_action_encr (TLS, t, TLS->our_id, tgl_get_peer_type (E->id), tgl_get_peer_id (E->id), time (0), 68, action); + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + assert (M->action.type == tgl_message_action_request_key); + tgl_do_send_msg (TLS, M, 0, 0);*/ +} + +void tgl_do_accept_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, long long exchange_id, unsigned char ga[]) { + /*static unsigned char s[256]; + tglt_secure_random (s, 256); + + BIGNUM *b = BN_bin2bn (s, 256, 0); + ensure_ptr (b); + BIGNUM *g_a = BN_bin2bn (ga, 256, 0); + ensure_ptr (g_a); + + assert (tglmp_check_g_a (TLS, TLS->encr_prime_bn, g_a) >= 0); + //if (!ctx) { + // ctx = BN_CTX_new (); + // ensure_ptr (ctx); + //} + BIGNUM *p = TLS->encr_prime_bn; + ensure_ptr (p); + BIGNUM *r = BN_new (); + ensure_ptr (r); + ensure (BN_mod_exp (r, g_a, b, p, TLS->BN_ctx)); + + static unsigned char kk[256]; + memset (kk, 0, sizeof (kk)); + BN_bn2bin (r, kk + (256 - BN_num_bytes (r))); + + bl_do_encr_chat_exchange_accept (TLS, E, exchange_id, kk); + + ensure (BN_set_word (g_a, TLS->encr_root)); + ensure (BN_mod_exp (r, g_a, b, p, TLS->BN_ctx)); + + static unsigned char buf[256]; + memset (buf, 0, sizeof (buf)); + BN_bn2bin (r, buf + (256 - BN_num_bytes (r))); + + static int action[70]; + action[0] = CODE_decrypted_message_action_accept_key; + *(long long *)(action + 1) = E->exchange_id; + action[3] = 0x100fe; + memcpy (action + 4, buf, 256); + *(long long *)(action + 68) = E->exchange_key_fingerprint; + + long long t; + tglt_secure_random (&t, 8); + + bl_do_send_message_action_encr (TLS, t, TLS->our_id, tgl_get_peer_type (E->id), tgl_get_peer_id (E->id), time (0), 70, action); + + BN_clear_free (b); + BN_clear_free (g_a); + BN_clear_free (r); + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + assert (M->action.type == tgl_message_action_accept_key); + tgl_do_send_msg (TLS, M, 0, 0);*/ +} + +void tgl_do_confirm_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, int sen_nop) { + /*bl_do_encr_chat_exchange_confirm (TLS, E); + if (sen_nop) { + int action = CODE_decrypted_message_action_noop; + + long long t; + tglt_secure_random (&t, 8); + + bl_do_send_message_action_encr (TLS, t, TLS->our_id, tgl_get_peer_type (E->id), tgl_get_peer_id (E->id), time (0), 1, &action); + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + assert (M->action.type == tgl_message_action_noop); + tgl_do_send_msg (TLS, M, 0, 0); + }*/ +} + +void tgl_do_commit_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char gb[]) { + /*assert (TLS->encr_prime); + + BIGNUM *g_b = BN_bin2bn (gb, 256, 0); + ensure_ptr (g_b); + assert (tglmp_check_g_a (TLS, TLS->encr_prime_bn, g_b) >= 0); + + BIGNUM *p = TLS->encr_prime_bn; + ensure_ptr (p); + BIGNUM *r = BN_new (); + ensure_ptr (r); + BIGNUM *a = BN_bin2bn ((void *)E->exchange_key, 256, 0); + ensure_ptr (a); + ensure (BN_mod_exp (r, g_b, a, p, TLS->BN_ctx)); + + static unsigned char s[256]; + memset (s, 0, 256); + + BN_bn2bin (r, s + (256 - BN_num_bytes (r))); + + BN_clear_free (g_b); + BN_clear_free (r); + BN_clear_free (a); + + static unsigned char sh[20]; + SHA1 (s, 256, sh); + + int action[4]; + action[0] = CODE_decrypted_message_action_commit_key; + *(long long *)(action + 1) = E->exchange_id; + *(long long *)(action + 3) = *(long long *)(sh + 12); + + long long t; + tglt_secure_random (&t, 8); + + bl_do_send_message_action_encr (TLS, t, TLS->our_id, tgl_get_peer_type (E->id), tgl_get_peer_id (E->id), time (0), 5, action); + + struct tgl_message *M = tgl_message_get (TLS, t); + assert (M); + assert (M->action.type == tgl_message_action_commit_key); + tgl_do_send_msg (TLS, M, 0, 0); + + bl_do_encr_chat_exchange_commit (TLS, E, s);*/ +} + +void tgl_do_abort_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E) { + //bl_do_encr_chat_exchange_abort (TLS, E); +} + +void tgl_started_cb (struct tgl_state *TLS, void *arg, int success) { + assert (success); + TLS->started = 1; + if (TLS->callback.started) { + TLS->callback.started (TLS); + } +} + +void tgl_export_auth_callback (struct tgl_state *TLS, void *arg, int success) { + assert (success); + int i; + for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i] && !tgl_signed_dc (TLS, TLS->DC_list[i])) { + return; + } + if (TLS->callback.logged_in) { + TLS->callback.logged_in (TLS); + } + + tglm_send_all_unsent (TLS); + tgl_do_get_difference (TLS, 0, tgl_started_cb, 0); +} + +void tgl_export_all_auth (struct tgl_state *TLS) { + int i; + int ok = 1; + for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i] && !tgl_signed_dc (TLS, TLS->DC_list[i])) { + tgl_do_export_auth (TLS, i, tgl_export_auth_callback, TLS->DC_list[i]); + ok = 0; + } + if (ok) { + if (TLS->callback.logged_in) { + TLS->callback.logged_in (TLS); + } + + tglm_send_all_unsent (TLS); + tgl_do_get_difference (TLS, 0, tgl_started_cb, 0); + } +} + +struct sign_up_extra { + char *phone; + char *hash; + char *first_name; + char *last_name; + int phone_len; + int hash_len; + int first_name_len; + int last_name_len; +}; + +void tgl_sign_in_code (struct tgl_state *TLS, const char *code[], void *_T); +void tgl_sign_in_result (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) { + struct sign_up_extra *E = _T; + if (success) { + tfree (E->phone, E->phone_len); + tfree (E->hash, E->hash_len); + tfree (E, sizeof (*E)); + } else { + vlogprintf (E_ERROR, "incorrect code\n"); + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E); + return; + } + tgl_export_all_auth (TLS); +} + +void tgl_sign_in_code (struct tgl_state *TLS, const char *code[], void *_T) { + struct sign_up_extra *E = _T; + if (!strcmp (code[0], "call")) { + tgl_do_phone_call (TLS, E->phone, E->phone_len, E->hash, E->hash_len, 0, 0); + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E); + return; + } + + tgl_do_send_code_result (TLS, E->phone, E->phone_len, E->hash, E->hash_len, code[0], strlen (code[0]), tgl_sign_in_result, E); +} + +void tgl_sign_up_code (struct tgl_state *TLS, const char *code[], void *_T); +void tgl_sign_up_result (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) { + struct sign_up_extra *E = _T; + if (success) { + tfree (E->phone, E->phone_len); + tfree (E->hash, E->hash_len); + tfree (E->first_name, E->first_name_len); + tfree (E->last_name, E->last_name_len); + tfree (E, sizeof (*E)); + } else { + vlogprintf (E_ERROR, "incorrect code\n"); + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E); + return; + } + tgl_export_all_auth (TLS); +} + +void tgl_sign_up_code (struct tgl_state *TLS, const char *code[], void *_T) { + struct sign_up_extra *E = _T; + if (!strcmp (code[0], "call")) { + tgl_do_phone_call (TLS, E->phone, E->phone_len, E->hash, E->hash_len, 0, 0); + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E); + return; + } + + tgl_do_send_code_result_auth (TLS, E->phone, E->phone_len, E->hash, E->hash_len, code[0], strlen (code[0]), E->first_name, E->first_name_len, E->last_name, E->last_name_len, tgl_sign_up_result, E); +} + + +void tgl_set_last_name (struct tgl_state *TLS, const char *last_name, struct sign_up_extra *E) { + E->last_name_len = strlen (last_name); + E->last_name = tmemdup (last_name, E->last_name_len); +} + +int tgl_set_first_name (struct tgl_state *TLS, const char *first_name, struct sign_up_extra *E) { + if (strlen (first_name) < 1) { + return -1; + } + + E->first_name_len = strlen (first_name); + E->first_name = tmemdup (first_name, E->first_name_len); + return 0; +} + +void tgl_register_cb (struct tgl_state *TLS, const char *rinfo[], void *_T) { + struct sign_up_extra *E = _T; + const char *yn = rinfo[0]; + if (strlen (yn) > 1) { + TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E); + } else if (strlen (yn) == 0 || *yn == 'y' || *yn == 'Y') { + if (!tgl_set_first_name(TLS, rinfo[1], E)) { + tgl_set_last_name(TLS, rinfo[2], E); + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_up_code, E); + } + else { + TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E); + } + } else if (*yn == 'n' || *yn == 'N') { + vlogprintf (E_ERROR, "stopping registration"); + tfree (E->phone, E->phone_len); + tfree (E->hash, E->hash_len); + tfree (E, sizeof (*E)); + tgl_login (TLS); + } else { + TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E); + } +} + +void tgl_sign_in_phone (struct tgl_state *TLS, const char *phone[], void *arg); +void tgl_sign_in_phone_cb (struct tgl_state *TLS, void *extra, int success, int registered, const char *mhash) { + struct sign_up_extra *E = extra; + if (!success) { + vlogprintf (E_ERROR, "Incorrect phone number\n"); + + tfree (E->phone, E->phone_len); + tfree (E, sizeof (*E)); + TLS->callback.get_values (TLS, tgl_phone_number, "phone number:", 1, tgl_sign_in_phone, NULL); + return; + } + + E->hash_len = strlen (mhash); + E->hash = tmemdup (mhash, E->hash_len); + + if (registered) { + TLS->callback.get_values (TLS, tgl_code, "code ('call' for phone call):", 1, tgl_sign_in_code, E); + } else { + TLS->callback.get_values (TLS, tgl_register_info, "registration info:", 3, tgl_register_cb, E); + } +} + +void tgl_sign_in_phone (struct tgl_state *TLS, const char *phone[], void *arg) { + struct sign_up_extra *E = talloc0 (sizeof (*E)); + E->phone_len = strlen (phone[0]); + E->phone = tmemdup (phone[0], E->phone_len); + + tgl_do_send_code (TLS, E->phone, E->phone_len, tgl_sign_in_phone_cb, E); +} + +void tgl_bot_hash_cb (struct tgl_state *TLS, const char *code[], void *arg); + +void tgl_sign_in_bot_cb (struct tgl_state *TLS, void *_T, int success, struct tgl_user *U) { + if (!success) { + vlogprintf (E_ERROR, "incorrect bot hash\n"); + TLS->callback.get_values (TLS, tgl_bot_hash, "bot hash:", 1, tgl_bot_hash_cb, NULL); + return; + } + tgl_export_all_auth (TLS); +} + +void tgl_bot_hash_cb (struct tgl_state *TLS, const char *code[], void *arg) { + tgl_do_send_bot_auth (TLS, code[0], strlen (code[0]), tgl_sign_in_bot_cb, NULL); +} + +void tgl_sign_in (struct tgl_state *TLS) { + if (!tgl_signed_dc (TLS, TLS->DC_working)) { + if (TLS->is_bot) { + TLS->callback.get_values (TLS, tgl_bot_hash, "bot hash:", 1, tgl_bot_hash_cb, NULL); + } else { + TLS->callback.get_values (TLS, tgl_phone_number, "phone number:", 1, tgl_sign_in_phone, NULL); + } + } else { + tgl_export_all_auth (TLS); + } +} + +static void check_authorized (struct tgl_state *TLS, void *arg) { + int i; + int ok = 1; + for (i = 0; i <= TLS->max_dc_num; i++) { + if (TLS->DC_list[i] && !tgl_signed_dc (TLS, TLS->DC_list[i]) && !tgl_authorized_dc (TLS, TLS->DC_list[i])) { + ok = 0; + break; + } + } + + if (ok) { + TLS->timer_methods->free (TLS->ev_login); + TLS->ev_login = NULL; + tgl_sign_in (TLS); + } else { + TLS->timer_methods->insert (TLS->ev_login, 0.1); + } +} + +void tgl_login (struct tgl_state *TLS) { + int i; + int ok = 1; + for (i = 0; i <= TLS->max_dc_num; i++) { + if (TLS->DC_list[i] && !tgl_signed_dc (TLS, TLS->DC_list[i]) && !tgl_authorized_dc (TLS, TLS->DC_list[i])) { + ok = 0; + break; + } + } + + if (!ok) { + TLS->ev_login = TLS->timer_methods->alloc (TLS, check_authorized, NULL); + TLS->timer_methods->insert (TLS->ev_login, 0.1); + } else { + tgl_sign_in (TLS); + } +} diff --git a/libs/tgl/src/queries.h b/libs/tgl/src/queries.h new file mode 100644 index 0000000000..9665667d55 --- /dev/null +++ b/libs/tgl/src/queries.h @@ -0,0 +1,84 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +//#include "net.h" +#ifndef __QUERIES_H__ +#define __QUERIES_H__ +#include "tgl-structures.h" +#include "auto.h" +#include "tgl-layout.h" + +#define QUERY_ACK_RECEIVED 1 +#define QUERY_FORCE_SEND 2 + +struct query; +struct query_methods { + int (*on_answer)(struct tgl_state *TLS, struct query *q, void *DS); + int (*on_error)(struct tgl_state *TLS, struct query *q, int error_code, int len, const char *error); + int (*on_timeout)(struct tgl_state *TLS, struct query *q); + struct paramed_type *type; +}; + +struct query { + long long msg_id; + int data_len; + int flags; + int seq_no; + long long session_id; + void *data; + struct query_methods *methods; + struct tgl_timer *ev; + struct tgl_dc *DC; + struct tgl_session *session; + struct paramed_type *type; + void *extra; + void *callback; + void *callback_extra; +}; + + +struct query *tglq_send_query (struct tgl_state *TLS, struct tgl_dc *DC, int len, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra); +void tglq_query_ack (struct tgl_state *TLS, long long id); +int tglq_query_error (struct tgl_state *TLS, long long id); +int tglq_query_result (struct tgl_state *TLS, long long id); +void tglq_query_restart (struct tgl_state *TLS, long long id); + +//double next_timer_in (void); +//void work_timers (void); + +//extern struct query_methods help_get_config_methods; + +double get_double_time (void); + +void tgl_do_send_bind_temp_key (struct tgl_state *TLS, struct tgl_dc *D, long long nonce, int expires_at, void *data, int len, long long msg_id); + +void tgl_do_request_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E); +void tgl_do_confirm_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, int sen_nop); +void tgl_do_accept_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, long long exchange_id, unsigned char g_a[]); +void tgl_do_commit_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char g_a[]); +void tgl_do_abort_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E); + +void tglq_regen_query (struct tgl_state *TLS, long long id); +void tglq_query_delete (struct tgl_state *TLS, long long id); +void tglq_query_free_all (struct tgl_state *TLS); +// For binlog + +//int get_dh_config_on_answer (struct query *q); +//void fetch_dc_option (void); +#endif diff --git a/libs/tgl/src/scheme.tl b/libs/tgl/src/scheme.tl new file mode 100644 index 0000000000..a38980aea4 --- /dev/null +++ b/libs/tgl/src/scheme.tl @@ -0,0 +1 @@ +scheme31.tl \ No newline at end of file diff --git a/libs/tgl/src/scheme12.tl b/libs/tgl/src/scheme12.tl new file mode 100644 index 0000000000..7d37a6fdc5 --- /dev/null +++ b/libs/tgl/src/scheme12.tl @@ -0,0 +1,505 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#4847d92a file:InputFile duration:int w:int h:int = InputMedia; +inputMediaUploadedThumbVideo#e628a145 file:InputFile thumb:InputFile duration:int w:int h:int = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#b29ad7cc id:int first_name:string last_name:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#214a8cdf peer:Peer top_message:int unread_count:int = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#5a04a49f id:long access_hash:long user_id:int date:int caption:string duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactFound#ea879f95 user_id:int = ContactFound; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#aa77b873 user_id:int expires:int = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; + +contacts.importedContacts#d1cd0a4c imported:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +updateUserTyping#6baa8508 user_id:int = Update; +updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer; + +decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaVideo#4cee6ef3 thumb:bytes thumb_w:int thumb_h:int duration:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; + +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#61a6d436 file:InputFile duration:int = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia; +inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#6080758f duration:int size:int key:bytes iv:bytes = DecryptedMessageMedia; + +audioEmpty#586988d8 id:long = Audio; +audio#427425e7 id:long access_hash:long user_id:int date:int duration:int size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.search#11f812d8 q:string limit:int = contacts.Found; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +invokeWithLayer12#dda60d3c {X:Type} query:!X = X; diff --git a/libs/tgl/src/scheme15.tl b/libs/tgl/src/scheme15.tl new file mode 100644 index 0000000000..4e18fad21b --- /dev/null +++ b/libs/tgl/src/scheme15.tl @@ -0,0 +1,522 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#007efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#0a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#b29ad7cc id:int first_name:string last_name:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#09d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#008c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#0fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageForwarded#05f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#0e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactFound#ea879f95 user_id:int = ContactFound; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#aa77b873 user_id:int expires:int = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.found#0566000e results:Vector users:Vector = contacts.Found; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#0b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#013abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +updateUserTyping#6baa8508 user_id:int = Update; +updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateChatParticipants#07761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#00f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#096a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#0c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer; + +decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; +decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; + +decryptedMessageMediaEmpty#089f5c4a = DecryptedMessageMedia; +decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia; +decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; + +decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia; +inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; +decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +decryptedMessageActionReadMessages#0c4f40be random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionDeleteMessages#65614304 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector = DecryptedMessageAction; +decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; +decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +za int = Z 0; +zb {n:#} int %(Vector int) = Z (n + 1); + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#03c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#0d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.search#11f812d8 q:string limit:int = contacts.Found; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#07e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#0a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#03f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#08b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#061b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#0e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +invokeWithLayer15#b4418b64 {X:Type} query:!X = X; diff --git a/libs/tgl/src/scheme16.tl b/libs/tgl/src/scheme16.tl new file mode 100644 index 0000000000..b1e1f196d8 --- /dev/null +++ b/libs/tgl/src/scheme16.tl @@ -0,0 +1,504 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#b29ad7cc id:int first_name:string last_name:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactFound#ea879f95 user_id:int = ContactFound; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#aa77b873 user_id:int expires:int = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +updateUserTyping#6baa8508 user_id:int = Update; +updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia; +inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.search#11f812d8 q:string limit:int = contacts.Found; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +invokeWithLayer16#cf5f0987 {X:Type} query:!X = X; diff --git a/libs/tgl/src/scheme17.tl b/libs/tgl/src/scheme17.tl new file mode 100644 index 0000000000..c564155c19 --- /dev/null +++ b/libs/tgl/src/scheme17.tl @@ -0,0 +1,528 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#b29ad7cc id:int first_name:string last_name:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactFound#ea879f95 user_id:int = ContactFound; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#aa77b873 user_id:int expires:int = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +//updateUserTyping#6baa8508 user_id:int = Update; +//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#da22d9ad user_id:int first_name:string last_name:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia; +inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; + + +message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoAction#92042ff7 = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentAction#8faee98e = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.search#11f812d8 q:string limit:int = contacts.Found; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents id:Vector = Vector; + + +invokeWithLayer17#50858a19 {X:Type} query:!X = X; + diff --git a/libs/tgl/src/scheme18.tl b/libs/tgl/src/scheme18.tl new file mode 100644 index 0000000000..6b7fdd5fc4 --- /dev/null +++ b/libs/tgl/src/scheme18.tl @@ -0,0 +1,535 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +//message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +//messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; +//messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactFound#ea879f95 user_id:int = ContactFound; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#aa77b873 user_id:int expires:int = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +//updateUserTyping#6baa8508 user_id:int = Update; +//updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#34e794bd file:InputFile file_name:string mime_type:string = InputMedia; +inputMediaUploadedThumbDocument#3e46de5d file:InputFile thumb:InputFile file_name:string mime_type:string = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; + +updateUserName user_id:int first_name:string last_name:string username:string = Update; +updateServiceNotification type:string message:string media:MessageMedia popup:Bool = Update; + +message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoAction#92042ff7 = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentAction#8faee98e = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents id:Vector = Vector; + + +account.checkUsername username:string = Bool; +account.updateUsername username:string = User; + +contacts.search q:string limit:int = contacts.Found; + +//invokeWithLayer18 {X:Type} query:!X = X; +invokeWithLayer18#1c900537 {X:Type} query:!X = X; + diff --git a/libs/tgl/src/scheme19.tl b/libs/tgl/src/scheme19.tl new file mode 100644 index 0000000000..732093a02a --- /dev/null +++ b/libs/tgl/src/scheme19.tl @@ -0,0 +1,596 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +int128 long long = Int128; +int256 long long long long = Int256; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 lat:double long:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c long:double lat:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoAction#92042ff7 = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentAction#8faee98e = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +account.noPassword#5770e7a9 new_salt:bytes = account.Password; +account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeSticker#fb0a5727 = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#dcef3102 hash:string packs:Vector documents:Vector = messages.AllStickers; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#354b5bc2 id:Vector = Vector; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; +account.getPassword#548a30f5 = account.Password; +account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; diff --git a/libs/tgl/src/scheme22.tl b/libs/tgl/src/scheme22.tl new file mode 100644 index 0000000000..1ed65373e0 --- /dev/null +++ b/libs/tgl/src/scheme22.tl @@ -0,0 +1,596 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +int128 long long = Int128; +int256 long long long long = Int256; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#29632a36 bytes:bytes = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#ab3a99ac peer:Peer top_message:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#e300cc3b phone_registered:Bool phone_invited:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.foreignLinkUnknown#133421f8 = contacts.ForeignLink; +contacts.foreignLinkRequested#a7801f47 has_phone:Bool = contacts.ForeignLink; +contacts.foreignLinkMutual#1bea8ce1 = contacts.ForeignLink; + +contacts.myLinkEmpty#d22a1c60 = contacts.MyLink; +contacts.myLinkRequested#6c69efee contact:Bool = contacts.MyLink; +contacts.myLinkContact#c240ebd9 = contacts.MyLink; + +contacts.link#eccea3f5 my_link:contacts.MyLink foreign_link:contacts.ForeignLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; +messages.message#ff90c417 message:Message chats:Vector users:Vector = messages.Message; + +messages.statedMessages#969478bb messages:Vector chats:Vector users:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessage#d07ae726 message:Message chats:Vector users:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessage#d1f4d35c id:int date:int pts:int seq:int = messages.SentMessage; + +messages.chat#40e9002a chat:Chat users:Vector = messages.Chat; + +messages.chats#8150cbd8 chats:Vector users:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b7de36f2 pts:int seq:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#13abdb3 message:Message pts:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#c6649e31 messages:Vector pts:int = Update; +updateDeleteMessages#a92bfe26 messages:Vector pts:int = Update; +updateRestoreMessages#d15de04d messages:Vector pts:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; +updateActivation#6f690963 user_id:int = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#d3f45784 id:int from_id:int message:string pts:int date:int seq:int = Updates; +updateShortChatMessage#2b2fbd4e id:int from_id:int chat_id:int message:string pts:int date:int seq:int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#2e54dd74 date:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.statedMessagesLinks#3e74f5c6 messages:Vector chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessages; + +messages.statedMessageLink#a9af2881 message:Message chats:Vector users:Vector links:Vector pts:int seq:int = messages.StatedMessage; + +messages.sentMessageLink#e9db4a3f id:int date:int pts:int seq:int links:Vector = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoAction#92042ff7 = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentAction#8faee98e = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +account.noPassword#5770e7a9 new_salt:bytes = account.Password; +account.password#739e5f72 current_salt:bytes new_salt:bytes hint:string = account.Password; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeSticker#fb0a5727 = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#dcef3102 hash:string packs:Vector documents:Vector = messages.AllStickers; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#14f2dd0a id:Vector = Vector; +messages.restoreMessages#395f9d7e id:Vector = Vector; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; +messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; +messages.forwardMessages#514cd10f peer:InputPeer id:Vector = messages.StatedMessages; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#b4bc68b5 chat_id:int title:string = messages.StatedMessage; +messages.editChatPhoto#d881821d chat_id:int photo:InputChatPhoto = messages.StatedMessage; +messages.addChatUser#2ee9ee9e chat_id:int user_id:InputUser fwd_limit:int = messages.StatedMessage; +messages.deleteChatUser#c3c5cd23 chat_id:int user_id:InputUser = messages.StatedMessage; +messages.createChat#419d9aee users:Vector title:string = messages.StatedMessage; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#3f3f4f2 peer:InputPeer id:int random_id:long = messages.StatedMessage; +messages.sendBroadcast#41bb0972 contacts:Vector message:string media:InputMedia = messages.StatedMessages; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#354b5bc2 id:Vector = Vector; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; +account.getPassword#548a30f5 = account.Password; +account.setPassword#dd2a4d8f current_password_hash:bytes new_salt:bytes new_password_hash:bytes hint:string = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; diff --git a/libs/tgl/src/scheme25.tl b/libs/tgl/src/scheme25.tl new file mode 100644 index 0000000000..89447c4ff2 --- /dev/null +++ b/libs/tgl/src/scheme25.tl @@ -0,0 +1,622 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +int128 long long = Int128; +int256 long long long long = Int256; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#2dc53a7d file:InputFile = InputMedia; +inputMediaPhoto#8f2ab2ec photo_id:InputPhoto = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#133ad6f6 file:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaUploadedThumbVideo#9912dabf file:InputFile thumb:InputFile duration:int w:int h:int mime_type:string = InputMedia; +inputMediaVideo#7f023ae6 video_id:InputVideo = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; +messageMediaVideo#a2d24290 video:Video = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupportedL22#29632a36 bytes:bytes = MessageMedia; +messageMediaUnsupported#9f84f49e = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; + +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; + +messages.chats#64ff9fd5 chats:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateReadMessages#2e5ab668 messages:Vector pts:int pts_count:int = Update; +updateDeleteMessages#a20db0e5 messages:Vector pts:int pts_count:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#68bac247 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int disabled_features:Vector = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector seq:int = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeSticker#994c9882 alt:string = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#dcef3102 hash:string packs:Vector documents:Vector = messages.AllStickers; + +disabledFeature#ae636f24 feature:string description:string = DisabledFeature; + +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; + +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; + +contactLinkUnknown#5f4f9247 = ContactLink; +contactLinkNone#feedd3ad = ContactLink; +contactLinkHasPhone#268f3f59 = ContactLink; +contactLinkContact#d502c2d0 = ContactLink; + +updateWebPage#2cc36971 webpage:WebPage = Update; + +webPageEmpty#eb1477e8 id:long = WebPage; +webPagePending#c586da1c id:long date:int = WebPage; +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; + +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; + +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; + +account.authorizations#1250abde authorizations:Vector = account.Authorizations; + +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; + +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; + +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; + +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; + +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; + +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#a5f18925 id:Vector = messages.AffectedMessages; +messages.receivedMessages#28abcb68 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage; +messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates; +messages.forwardMessages#55e1728d peer:InputPeer id:Vector random_id:Vector = Updates; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#dc452855 chat_id:int title:string = Updates; +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; +messages.createChat#9cb126e users:Vector title:string = Updates; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; +messages.sendBroadcast#bf73f4da contacts:Vector random_id:Vector message:string media:InputMedia = Updates; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#36a73f77 id:Vector = messages.AffectedMessages; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; + +account.updateDeviceLocked#38df3532 period:int = Bool; + +messages.getWebPagePreview#25223e24 message:string = MessageMedia; + +account.getAuthorizations#e320c158 = account.Authorizations; +account.resetAuthorization#df77f3bc hash:long = Bool; +account.getPassword#548a30f5 = account.Password; +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; +auth.recoverPassword#4ea56e92 code:string = auth.Authorization; diff --git a/libs/tgl/src/scheme28.tl b/libs/tgl/src/scheme28.tl new file mode 100644 index 0000000000..302731ef77 --- /dev/null +++ b/libs/tgl/src/scheme28.tl @@ -0,0 +1,641 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +int128 long long = Int128; +int256 long long long long = Int256; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia; +inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; +chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia; +messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#9f84f49e = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector = Photo; +photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; +videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; + +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; + +messages.chats#64ff9fd5 chats:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateDeleteMessages#a20db0e5 messages:Vector pts:int pts_count:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOption#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; + +config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector seq:int = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; +sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction; +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeSticker#994c9882 alt:string = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#dcef3102 hash:string packs:Vector documents:Vector = messages.AllStickers; + +disabledFeature#ae636f24 feature:string description:string = DisabledFeature; + +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; + +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; + +contactLinkUnknown#5f4f9247 = ContactLink; +contactLinkNone#feedd3ad = ContactLink; +contactLinkHasPhone#268f3f59 = ContactLink; +contactLinkContact#d502c2d0 = ContactLink; + +updateWebPage#2cc36971 webpage:WebPage = Update; + +webPageEmpty#eb1477e8 id:long = WebPage; +webPagePending#c586da1c id:long date:int = WebPage; +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; + +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; + +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; + +account.authorizations#1250abde authorizations:Vector = account.Authorizations; + +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; + +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; + +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; + +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; + +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; + +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; + +receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage; + +chatInviteEmpty#69df3769 = ExportedChatInvite; +chatInviteExported#fc2e05bc link:string = ExportedChatInvite; + +chatInviteAlready#5a686d7c chat:Chat = ChatInvite; +chatInvite#ce917dcd title:string = ChatInvite; + +messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction; + +updateReadMessagesContents#68c13933 messages:Vector pts:int pts_count:int = Update; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#a5f18925 id:Vector = messages.AffectedMessages; +messages.receivedMessages#5a954c0 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage; +messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates; +messages.forwardMessages#55e1728d peer:InputPeer id:Vector random_id:Vector = Updates; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#dc452855 chat_id:int title:string = Updates; +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; +messages.createChat#9cb126e users:Vector title:string = Updates; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; +messages.sendBroadcast#bf73f4da contacts:Vector random_id:Vector message:string media:InputMedia = Updates; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#36a73f77 id:Vector = messages.AffectedMessages; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; + +account.updateDeviceLocked#38df3532 period:int = Bool; + +messages.getWebPagePreview#25223e24 message:string = MessageMedia; + +account.getAuthorizations#e320c158 = account.Authorizations; +account.resetAuthorization#df77f3bc hash:long = Bool; +account.getPassword#548a30f5 = account.Password; +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; +auth.recoverPassword#4ea56e92 code:string = auth.Authorization; + +invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X; + +messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite; +messages.checkChatInvite#3eadb1bb hash:string = ChatInvite; +messages.importChatInvite#6c50051c hash:string = Updates; diff --git a/libs/tgl/src/scheme30.tl b/libs/tgl/src/scheme30.tl new file mode 100644 index 0000000000..d6c9b7cf87 --- /dev/null +++ b/libs/tgl/src/scheme30.tl @@ -0,0 +1,656 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +int128 long long = Int128; +int256 long long long long = Int256; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia; +inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; +userSelf#1c60e608 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFullL27#630e61be id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings = ChatFull; +chatFull#cade0791 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite = ChatFull; + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#a7ab1991 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia; +messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#9f84f49e = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector = Photo; +photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; +videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#f6b673a4 expires:int user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#771095da user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool real_first_name:string real_last_name:string = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; + +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; + +messages.chats#64ff9fd5 chats:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateDeleteMessages#a20db0e5 messages:Vector pts:int pts_count:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; +dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption; + +config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector seq:int = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; +sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction; +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute; +documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#5ce352ec hash:string packs:Vector sets:Vector documents:Vector = messages.AllStickers; + +disabledFeature#ae636f24 feature:string description:string = DisabledFeature; + +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; + +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; + +contactLinkUnknown#5f4f9247 = ContactLink; +contactLinkNone#feedd3ad = ContactLink; +contactLinkHasPhone#268f3f59 = ContactLink; +contactLinkContact#d502c2d0 = ContactLink; + +updateWebPage#2cc36971 webpage:WebPage = Update; + +webPageEmpty#eb1477e8 id:long = WebPage; +webPagePending#c586da1c id:long date:int = WebPage; +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; + +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; + +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; + +account.authorizations#1250abde authorizations:Vector = account.Authorizations; + +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; + +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; + +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; + +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; + +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; + +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; + +receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage; + +chatInviteEmpty#69df3769 = ExportedChatInvite; +chatInviteExported#fc2e05bc link:string = ExportedChatInvite; + +chatInviteAlready#5a686d7c chat:Chat = ChatInvite; +chatInvite#ce917dcd title:string = ChatInvite; + +messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction; + +updateReadMessagesContents#68c13933 messages:Vector pts:int pts_count:int = Update; + +inputStickerSetEmpty#ffb62b95 = InputStickerSet; +inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet; +inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet; + +stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet; + +messages.stickerSet#b60a24a6 set:StickerSet packs:Vector documents:Vector = messages.StickerSet; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#a5f18925 id:Vector = messages.AffectedMessages; +messages.receivedMessages#5a954c0 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#9add8f26 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long = messages.SentMessage; +messages.sendMedia#2d7923b1 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long = Updates; +messages.forwardMessages#55e1728d peer:InputPeer id:Vector random_id:Vector = Updates; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#dc452855 chat_id:int title:string = Updates; +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; +messages.createChat#9cb126e users:Vector title:string = Updates; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; +messages.sendBroadcast#bf73f4da contacts:Vector random_id:Vector message:string media:InputMedia = Updates; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#36a73f77 id:Vector = messages.AffectedMessages; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; + +account.updateDeviceLocked#38df3532 period:int = Bool; + +auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization; + +messages.getWebPagePreview#25223e24 message:string = MessageMedia; + +account.getAuthorizations#e320c158 = account.Authorizations; +account.resetAuthorization#df77f3bc hash:long = Bool; +account.getPassword#548a30f5 = account.Password; +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; +auth.recoverPassword#4ea56e92 code:string = auth.Authorization; + +invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X; + +messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite; +messages.checkChatInvite#3eadb1bb hash:string = ChatInvite; +messages.importChatInvite#6c50051c hash:string = Updates; +messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; +messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool; +messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool; diff --git a/libs/tgl/src/scheme31.tl b/libs/tgl/src/scheme31.tl new file mode 100644 index 0000000000..83a2084170 --- /dev/null +++ b/libs/tgl/src/scheme31.tl @@ -0,0 +1,668 @@ +int ?= Int; +long ?= Long; +double ?= Double; +string ?= String; + +bytes string = Bytes; + +int128 long long = Int128; +int256 long long long long = Int256; + +boolFalse#bc799737 = Bool; +boolTrue#997275b5 = Bool; + +vector#1cb5c415 {t:Type} # [ t ] = Vector t; + +error#c4b9f9bb code:int text:string = Error; + +null#56730bcc = Null; + +inputPeerEmpty#7f3b18ea = InputPeer; +inputPeerSelf#7da07ec9 = InputPeer; +inputPeerContact#1023dbe8 user_id:int = InputPeer; +inputPeerForeign#9b447325 user_id:int access_hash:long = InputPeer; +inputPeerChat#179be863 chat_id:int = InputPeer; + +inputUserEmpty#b98886cf = InputUser; +inputUserSelf#f7c1b13f = InputUser; +inputUserContact#86e94f65 user_id:int = InputUser; +inputUserForeign#655e74ff user_id:int access_hash:long = InputUser; + +inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact; + +inputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile; + +inputMediaEmpty#9664f57f = InputMedia; +inputMediaUploadedPhoto#f7aff1c0 file:InputFile caption:string = InputMedia; +inputMediaPhoto#e9bfb4f3 id:InputPhoto caption:string = InputMedia; +inputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia; +inputMediaContact#a6e45987 phone_number:string first_name:string last_name:string = InputMedia; +inputMediaUploadedVideo#e13fd4bc file:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaUploadedThumbVideo#96fb97dc file:InputFile thumb:InputFile duration:int w:int h:int caption:string = InputMedia; +inputMediaVideo#936a4ebd video_id:InputVideo caption:string = InputMedia; + +inputChatPhotoEmpty#1ca48f57 = InputChatPhoto; +inputChatUploadedPhoto#94254732 file:InputFile crop:InputPhotoCrop = InputChatPhoto; +inputChatPhoto#b2e1bf08 id:InputPhoto crop:InputPhotoCrop = InputChatPhoto; + +inputGeoPointEmpty#e4c123d6 = InputGeoPoint; +inputGeoPoint#f3b7acc9 latitude:double longitude:double = InputGeoPoint; + +inputPhotoEmpty#1cd7bf0d = InputPhoto; +inputPhoto#fb95c6c4 id:long access_hash:long = InputPhoto; + +inputVideoEmpty#5508ec75 = InputVideo; +inputVideo#ee579652 id:long access_hash:long = InputVideo; + +inputFileLocation#14637196 volume_id:long local_id:int secret:long = InputFileLocation; +inputVideoFileLocation#3d0364ec id:long access_hash:long = InputFileLocation; + +inputPhotoCropAuto#ade6b004 = InputPhotoCrop; +inputPhotoCrop#d9915325 crop_left:double crop_top:double crop_width:double = InputPhotoCrop; + +inputAppEvent#770656a8 time:double type:string peer:long data:string = InputAppEvent; + +peerUser#9db1bc6d user_id:int = Peer; +peerChat#bad0e5bb chat_id:int = Peer; + +storage.fileUnknown#aa963b05 = storage.FileType; +storage.fileJpeg#7efe0e = storage.FileType; +storage.fileGif#cae1aadf = storage.FileType; +storage.filePng#a4f63c0 = storage.FileType; +storage.filePdf#ae1e508d = storage.FileType; +storage.fileMp3#528a0677 = storage.FileType; +storage.fileMov#4b09ebbc = storage.FileType; +storage.filePartial#40bc6f52 = storage.FileType; +storage.fileMp4#b3cea0e4 = storage.FileType; +storage.fileWebp#1081464c = storage.FileType; + +fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileLocation; +fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; + +userEmpty#200250ba id:int = User; + +userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; +userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; + +userStatusEmpty#9d05049 = UserStatus; +userStatusOnline#edb93949 expires:int = UserStatus; +userStatusOffline#8c703f was_online:int = UserStatus; + +chatEmpty#9ba2d800 id:int = Chat; +chat#6e9c9bc7 id:int title:string photo:ChatPhoto participants_count:int date:int left:Bool version:int = Chat; +chatForbidden#fb0ccc41 id:int title:string date:int = Chat; + +chatFull#2e02a614 id:int participants:ChatParticipants chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector = ChatFull; + + +chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant; + +chatParticipantsForbidden#fd2bb8a chat_id:int = ChatParticipants; +chatParticipants#7841b415 chat_id:int admin_id:int participants:Vector version:int = ChatParticipants; + +chatPhotoEmpty#37c1011c = ChatPhoto; +chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; + +messageEmpty#83e5de54 id:int = Message; +message#c3060325 flags:# id:int from_id:int to_id:Peer fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int date:int message:string media:MessageMedia reply_markup:flags.6?ReplyMarkup = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; + +messageMediaEmpty#3ded6320 = MessageMedia; +messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia; +messageMediaVideo#5bcf1675 video:Video caption:string = MessageMedia; +messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia; +messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia; +messageMediaUnsupported#9f84f49e = MessageMedia; + +messageActionEmpty#b6aef7b0 = MessageAction; +messageActionChatCreate#a6638b9a title:string users:Vector = MessageAction; +messageActionChatEditTitle#b5a1ce5a title:string = MessageAction; +messageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction; +messageActionChatDeletePhoto#95e3fbef = MessageAction; +messageActionChatAddUser#5e3cfc4b user_id:int = MessageAction; +messageActionChatDeleteUser#b2ae9b0c user_id:int = MessageAction; + +dialog#c1dd804a peer:Peer top_message:int read_inbox_max_id:int unread_count:int notify_settings:PeerNotifySettings = Dialog; + +photoEmpty#2331b22d id:long = Photo; +photo#c3838076 id:long access_hash:long user_id:int date:int geo:GeoPoint sizes:Vector = Photo; +photoL27#22b56751 id:long access_hash:long user_id:int date:int caption:string geo:GeoPoint sizes:Vector = Photo; + +photoSizeEmpty#e17e23c type:string = PhotoSize; +photoSize#77bfb61b type:string location:FileLocation w:int h:int size:int = PhotoSize; +photoCachedSize#e9a734fa type:string location:FileLocation w:int h:int bytes:bytes = PhotoSize; + +videoEmpty#c10658a8 id:long = Video; +video#ee9f4a4d id:long access_hash:long user_id:int date:int duration:int size:int thumb:PhotoSize dc_id:int w:int h:int = Video; +videoL27#388fa391 id:long access_hash:long user_id:int date:int caption:string duration:int mime_type:string size:int thumb:PhotoSize dc_id:int w:int h:int = Video; + +geoPointEmpty#1117dd5f = GeoPoint; +geoPoint#2049d70c longitude:double latitude:double = GeoPoint; + +auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone; + +auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +auth.authorization#ff036af1 user:User = auth.Authorization; + +auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization; + +inputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer; +inputNotifyUsers#193b4417 = InputNotifyPeer; +inputNotifyChats#4a95e84e = InputNotifyPeer; +inputNotifyAll#a429b886 = InputNotifyPeer; + +inputPeerNotifyEventsEmpty#f03064d8 = InputPeerNotifyEvents; +inputPeerNotifyEventsAll#e86a2c74 = InputPeerNotifyEvents; + +inputPeerNotifySettings#46a2ce98 mute_until:int sound:string show_previews:Bool events_mask:int = InputPeerNotifySettings; + +peerNotifyEventsEmpty#add53cb3 = PeerNotifyEvents; +peerNotifyEventsAll#6d1ded88 = PeerNotifyEvents; + +peerNotifySettingsEmpty#70a68512 = PeerNotifySettings; +peerNotifySettings#8d5e11ee mute_until:int sound:string show_previews:Bool events_mask:int = PeerNotifySettings; + +wallPaper#ccb03657 id:int title:string sizes:Vector color:int = WallPaper; + +userFull#5a89ac5b user:User link:contacts.Link profile_photo:Photo notify_settings:PeerNotifySettings blocked:Bool bot_info:BotInfo = UserFull; + +contact#f911c994 user_id:int mutual:Bool = Contact; + +importedContact#d0028438 user_id:int client_id:long = ImportedContact; + +contactBlocked#561bc879 user_id:int date:int = ContactBlocked; + +contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; + +contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus; + +chatLocated#3631cf4c chat_id:int distance:int = ChatLocated; + +contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link; + +contacts.contactsNotModified#b74ba9d2 = contacts.Contacts; +contacts.contacts#6f8b8cb2 contacts:Vector users:Vector = contacts.Contacts; + +contacts.importedContacts#ad524315 imported:Vector retry_contacts:Vector users:Vector = contacts.ImportedContacts; + +contacts.blocked#1c138d15 blocked:Vector users:Vector = contacts.Blocked; +contacts.blockedSlice#900802a1 count:int blocked:Vector users:Vector = contacts.Blocked; + +contacts.suggested#5649dcc5 results:Vector users:Vector = contacts.Suggested; + +messages.dialogs#15ba6c40 dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; +messages.dialogsSlice#71e094f3 count:int dialogs:Vector messages:Vector chats:Vector users:Vector = messages.Dialogs; + +messages.messages#8c718e87 messages:Vector chats:Vector users:Vector = messages.Messages; +messages.messagesSlice#b446ae3 count:int messages:Vector chats:Vector users:Vector = messages.Messages; + +messages.messageEmpty#3f4e0648 = messages.Message; + +messages.sentMessage#4c3d47f3 id:int date:int media:MessageMedia pts:int pts_count:int = messages.SentMessage; + +messages.chats#64ff9fd5 chats:Vector = messages.Chats; + +messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector users:Vector = messages.ChatFull; + +messages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory; + +inputMessagesFilterEmpty#57e2f66c = MessagesFilter; +inputMessagesFilterPhotos#9609a51c = MessagesFilter; +inputMessagesFilterVideo#9fc00e65 = MessagesFilter; +inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; +inputMessagesFilterPhotoVideoDocuments#d95e73bb = MessagesFilter; +inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; + +updateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update; +updateMessageID#4e90bfd6 id:int random_id:long = Update; +updateDeleteMessages#a20db0e5 messages:Vector pts:int pts_count:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; +updateChatParticipants#7761198 participants:ChatParticipants = Update; +updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; +updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update; +updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update; +updateContactRegistered#2575bbb9 user_id:int date:int = Update; +updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update; +updateNewAuthorization#8f06529a auth_key_id:long date:int device:string location:string = Update; + +updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State; + +updates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference; +updates.difference#f49ca0 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector state:updates.State = updates.Difference; +updates.differenceSlice#a8fb1981 new_messages:Vector new_encrypted_messages:Vector other_updates:Vector chats:Vector users:Vector intermediate_state:updates.State = updates.Difference; + +updatesTooLong#e317af7e = Updates; +updateShortMessage#ed5c2127 flags:# id:int user_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShortChatMessage#52238b3c flags:# id:int from_id:int chat_id:int message:string pts:int pts_count:int date:int fwd_from_id:flags.2?int fwd_date:flags.2?int reply_to_msg_id:flags.3?int = Updates; +updateShort#78d4dec1 update:Update date:int = Updates; +updatesCombined#725b04c3 updates:Vector users:Vector chats:Vector date:int seq_start:int seq:int = Updates; +updates#74ae4240 updates:Vector users:Vector chats:Vector date:int seq:int = Updates; + +photos.photos#8dca6aa5 photos:Vector users:Vector = photos.Photos; +photos.photosSlice#15051f54 count:int photos:Vector users:Vector = photos.Photos; + +photos.photo#20212ca8 photo:Photo users:Vector = photos.Photo; + +upload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File; + +dcOptionL28#2ec2a43c id:int hostname:string ip_address:string port:int = DcOption; +dcOption#5d8c6cc flags:int id:int ip_address:string port:int = DcOption; + +config#4e32b894 date:int expires:int test_mode:Bool this_dc:int dc_options:Vector chat_size_max:int broadcast_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int chat_big_size:int push_chat_period_ms:int push_chat_limit:int disabled_features:Vector = Config; + +nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc; + +help.appUpdate#8987f311 id:int critical:Bool url:string text:string = help.AppUpdate; +help.noAppUpdate#c45a6536 = help.AppUpdate; + +help.inviteText#18cb9f78 message:string = help.InviteText; + +messages.sentMessageLink#35a1a663 id:int date:int media:MessageMedia pts:int pts_count:int links:Vector seq:int = messages.SentMessage; + +inputGeoChat#74d456fa chat_id:int access_hash:long = InputGeoChat; + +inputNotifyGeoChatPeer#4d8ddec8 geo_peer:InputGeoChat = InputNotifyPeer; + +geoChat#75eaea5a id:int access_hash:long title:string address:string venue:string geo:GeoPoint photo:ChatPhoto participants_count:int date:int checked_in:Bool version:int = Chat; + +geoChatMessageEmpty#60311a9b chat_id:int id:int = GeoChatMessage; +geoChatMessage#4505f8e1 chat_id:int id:int from_id:int date:int message:string media:MessageMedia = GeoChatMessage; +geoChatMessageService#d34fa24e chat_id:int id:int from_id:int date:int action:MessageAction = GeoChatMessage; + +geochats.statedMessage#17b1578b message:GeoChatMessage chats:Vector users:Vector seq:int = geochats.StatedMessage; + +geochats.located#48feb267 results:Vector messages:Vector chats:Vector users:Vector = geochats.Located; + +geochats.messages#d1526db1 messages:Vector chats:Vector users:Vector = geochats.Messages; +geochats.messagesSlice#bc5863e8 count:int messages:Vector chats:Vector users:Vector = geochats.Messages; + +messageActionGeoChatCreate#6f038ebc title:string address:string = MessageAction; +messageActionGeoChatCheckin#c7d53de = MessageAction; + +updateNewGeoChatMessage#5a68e3f7 geo_message:GeoChatMessage = Update; + +wallPaperSolid#63117f24 id:int title:string bg_color:int color:int = WallPaper; + +updateNewEncryptedMessage#12bcbd9a encr_message:EncryptedMessage qts:int = Update; +updateEncryptedChatTyping#1710f156 chat_id:int = Update; +updateEncryption#b4a2e88d encr_chat:EncryptedChat date:int = Update; +updateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update; + +encryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat; +encryptedChatWaiting#3bf703dc id:int access_hash:long date:int admin_id:int participant_id:int = EncryptedChat; +encryptedChatRequested#c878527e id:int access_hash:long date:int admin_id:int participant_id:int g_a:bytes = EncryptedChat; +encryptedChat#fa56ce36 id:int access_hash:long date:int admin_id:int participant_id:int g_a_or_b:bytes key_fingerprint:long = EncryptedChat; +encryptedChatDiscarded#13d6dd27 id:int = EncryptedChat; + +inputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat; + +encryptedFileEmpty#c21f497e = EncryptedFile; +encryptedFile#4a70994c id:long access_hash:long size:int dc_id:int key_fingerprint:int = EncryptedFile; + +inputEncryptedFileEmpty#1837c364 = InputEncryptedFile; +inputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile; +inputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile; + +inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation; + +encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; +encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; + +messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; +messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; + +messages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage; +messages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage; + +inputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile; + +inputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile; + +updateChatParticipantAdd#3a0eeb22 chat_id:int user_id:int inviter_id:int version:int = Update; +updateChatParticipantDelete#6e5f8c22 chat_id:int user_id:int version:int = Update; +updateDcOptions#8e5e9873 dc_options:Vector = Update; + +inputMediaUploadedAudio#4e498cab file:InputFile duration:int mime_type:string = InputMedia; +inputMediaAudio#89938781 audio_id:InputAudio = InputMedia; +inputMediaUploadedDocument#ffe76b78 file:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaUploadedThumbDocument#41481486 file:InputFile thumb:InputFile mime_type:string attributes:Vector = InputMedia; +inputMediaDocument#d184e841 document_id:InputDocument = InputMedia; + +messageMediaDocument#2fda2204 document:Document = MessageMedia; +messageMediaAudio#c6b68300 audio:Audio = MessageMedia; + +inputAudioEmpty#d95adc84 = InputAudio; +inputAudio#77d440ff id:long access_hash:long = InputAudio; + +inputDocumentEmpty#72f0eaae = InputDocument; +inputDocument#18798952 id:long access_hash:long = InputDocument; + +inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; +inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; + +audioEmpty#586988d8 id:long = Audio; +audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; + +documentEmpty#36f8c871 id:long = Document; +document#f9a39f4f id:long access_hash:long date:int mime_type:string size:int thumb:PhotoSize dc_id:int attributes:Vector = Document; +document_l19#9efc6326 id:long access_hash:long user_id:int date:int file_name:string mime_type:string size:int thumb:PhotoSize dc_id:int = Document; + +help.support#17c6b5f6 phone_number:string user:User = help.Support; + +notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; +notifyUsers#b4c83b4c = NotifyPeer; +notifyChats#c007cec3 = NotifyPeer; +notifyAll#74d07c60 = NotifyPeer; + +updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; +updateNotifySettings#bec268ef notify_peer:NotifyPeer notify_settings:PeerNotifySettings = Update; + +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoActionL27#92042ff7 = SendMessageAction; +sendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioActionL27#e6ac8a6f = SendMessageAction; +sendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction; +sendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction; +sendMessageUploadDocumentActionL27#8faee98e = SendMessageAction; +sendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector users:Vector = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message_text:string media:MessageMedia popup:Bool = Update; + +userStatusRecently#e26f42f1 = UserStatus; +userStatusLastWeek#7bf09fc = UserStatus; +userStatusLastMonth#77ebc742 = UserStatus; + +updatePrivacy#ee3b272a key:PrivacyKey rules:Vector = Update; + +inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey; + +privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey; + +inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule; +inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule; +inputPrivacyValueAllowUsers#131cc67f users:Vector = InputPrivacyRule; +inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule; +inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule; +inputPrivacyValueDisallowUsers#90110467 users:Vector = InputPrivacyRule; + +privacyValueAllowContacts#fffe1bac = PrivacyRule; +privacyValueAllowAll#65427b82 = PrivacyRule; +privacyValueAllowUsers#4d5bbe0c users:Vector = PrivacyRule; +privacyValueDisallowContacts#f888fa1a = PrivacyRule; +privacyValueDisallowAll#8b73e763 = PrivacyRule; +privacyValueDisallowUsers#c7f49b7 users:Vector = PrivacyRule; + +account.privacyRules#554abb6f rules:Vector users:Vector = account.PrivacyRules; + +accountDaysTTL#b8d0afdf days:int = AccountDaysTTL; + +account.sentChangePhoneCode#a4f58c4c phone_code_hash:string send_call_timeout:int = account.SentChangePhoneCode; + +updateUserPhone#12b9417b user_id:int phone:string = Update; + +documentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute; +documentAttributeAnimated#11b58939 = DocumentAttribute; +documentAttributeStickerL28#994c9882 alt:string = DocumentAttribute; +documentAttributeSticker#3a556302 alt:string stickerset:InputStickerSet = DocumentAttribute; +documentAttributeVideo#5910cccb duration:int w:int h:int = DocumentAttribute; +documentAttributeAudio#51448e5 duration:int = DocumentAttribute; +documentAttributeFilename#15590068 file_name:string = DocumentAttribute; + +messages.stickersNotModified#f1749a22 = messages.Stickers; +messages.stickers#8a8ecd32 hash:string stickers:Vector = messages.Stickers; + +stickerPack#12b299d4 emoticon:string documents:Vector = StickerPack; + +messages.allStickersNotModified#e86602c3 = messages.AllStickers; +messages.allStickers#5ce352ec hash:string packs:Vector sets:Vector documents:Vector = messages.AllStickers; + +disabledFeature#ae636f24 feature:string description:string = DisabledFeature; + +updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update; +updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update; + +messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages; + +contactLinkUnknown#5f4f9247 = ContactLink; +contactLinkNone#feedd3ad = ContactLink; +contactLinkHasPhone#268f3f59 = ContactLink; +contactLinkContact#d502c2d0 = ContactLink; + +updateWebPage#2cc36971 webpage:WebPage = Update; + +webPageEmpty#eb1477e8 id:long = WebPage; +webPagePending#c586da1c id:long date:int = WebPage; +webPage#a31ea0b5 flags:# id:long url:string display_url:string type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string = WebPage; + +messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia; + +authorization#7bf2e6f6 hash:long flags:int device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization; + +account.authorizations#1250abde authorizations:Vector = account.Authorizations; + +account.noPassword#96dabc18 new_salt:bytes email_unconfirmed_pattern:string = account.Password; +account.password#7c18141c current_salt:bytes new_salt:bytes hint:string has_recovery:Bool email_unconfirmed_pattern:string = account.Password; + +account.passwordSettings#b7b72ab3 email:string = account.PasswordSettings; + +account.passwordInputSettings#bcfc532c flags:# new_salt:flags.0?bytes new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string = account.PasswordInputSettings; + +auth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery; + +inputMediaVenue#2827a81a geo_point:InputGeoPoint title:string address:string provider:string venue_id:string = InputMedia; + +messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia; + +receivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage; + +chatInviteEmpty#69df3769 = ExportedChatInvite; +chatInviteExported#fc2e05bc link:string = ExportedChatInvite; + +chatInviteAlready#5a686d7c chat:Chat = ChatInvite; +chatInvite#ce917dcd title:string = ChatInvite; + +messageActionChatJoinedByLink#f89cf5e8 inviter_id:int = MessageAction; + +updateReadMessagesContents#68c13933 messages:Vector pts:int pts_count:int = Update; + +inputStickerSetEmpty#ffb62b95 = InputStickerSet; +inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet; +inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet; + +stickerSet#a7a43b17 id:long access_hash:long title:string short_name:string = StickerSet; + +messages.stickerSet#b60a24a6 set:StickerSet packs:Vector documents:Vector = messages.StickerSet; + +user#22e49072 flags:# id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int = User; + +botCommand#c27ac8c7 command:string description:string = BotCommand; +botCommandOld#b79d22ab command:string params:string description:string = BotCommand; + +botInfoEmpty#bb2e37ce = BotInfo; +botInfo#9cf585d user_id:int version:int share_text:string description:string commands:Vector = BotInfo; + +keyboardButton#a2fa4880 text:string = KeyboardButton; + +keyboardButtonRow#77608b83 buttons:Vector = KeyboardButtonRow; + +replyKeyboardHide#a03e5b85 flags:int = ReplyMarkup; +replyKeyboardForceReply#f4108aa0 flags:int = ReplyMarkup; +replyKeyboardMarkup#3502758c flags:int rows:Vector = ReplyMarkup; + +---functions--- + +invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X; + +invokeAfterMsgs#3dc4b4f0 {X:Type} msg_ids:Vector query:!X = X; + +auth.checkPhone#6fe51dfb phone_number:string = auth.CheckedPhone; +auth.sendCode#768d5f4d phone_number:string sms_type:int api_id:int api_hash:string lang_code:string = auth.SentCode; +auth.sendCall#3c51564 phone_number:string phone_code_hash:string = Bool; +auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization; +auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization; +auth.logOut#5717da40 = Bool; +auth.resetAuthorizations#9fab0d1a = Bool; +auth.sendInvites#771c1d97 phone_numbers:Vector message:string = Bool; +auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; +auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; + +account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; +account.unregisterDevice#65c55b40 token_type:int token:string = Bool; +account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool; +account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings; +account.resetNotifySettings#db7e1747 = Bool; +account.updateProfile#f0888d68 first_name:string last_name:string = User; +account.updateStatus#6628562c offline:Bool = Bool; +account.getWallPapers#c04cfac2 = Vector; + +users.getUsers#d91a548 id:Vector = Vector; +users.getFullUser#ca30a5b1 id:InputUser = UserFull; + +contacts.getStatuses#c4a353ee = Vector; +contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; +contacts.importContacts#da30b32d contacts:Vector replace:Bool = contacts.ImportedContacts; +contacts.getSuggested#cd773428 limit:int = contacts.Suggested; +contacts.deleteContact#8e953744 id:InputUser = contacts.Link; +contacts.deleteContacts#59ab389e id:Vector = Bool; +contacts.block#332b49fc id:InputUser = Bool; +contacts.unblock#e54100bd id:InputUser = Bool; +contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector; +contacts.importCard#4fe196fe export_card:Vector = User; + +messages.getMessages#4222fa74 id:Vector = messages.Messages; +messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; +messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; +messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; +messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; +messages.deleteMessages#a5f18925 id:Vector = messages.AffectedMessages; +messages.receivedMessages#5a954c0 max_id:int = Vector; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; +messages.sendMessage#fc55e6b5 flags:# peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup = messages.SentMessage; +messages.sendMedia#c8f16791 flags:# peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia random_id:long reply_markup:flags.2?ReplyMarkup = Updates; +messages.forwardMessages#55e1728d peer:InputPeer id:Vector random_id:Vector = Updates; +messages.getChats#3c6aa187 id:Vector = messages.Chats; +messages.getFullChat#3b831c66 chat_id:int = messages.ChatFull; +messages.editChatTitle#dc452855 chat_id:int title:string = Updates; +messages.editChatPhoto#ca4c79d8 chat_id:int photo:InputChatPhoto = Updates; +messages.addChatUser#f9a0aa09 chat_id:int user_id:InputUser fwd_limit:int = Updates; +messages.deleteChatUser#e0611f16 chat_id:int user_id:InputUser = Updates; +messages.createChat#9cb126e users:Vector title:string = Updates; + +updates.getState#edd4882a = updates.State; +updates.getDifference#a041495 pts:int date:int qts:int = updates.Difference; + +photos.updateProfilePhoto#eef579a0 id:InputPhoto crop:InputPhotoCrop = UserProfilePhoto; +photos.uploadProfilePhoto#d50f9c88 file:InputFile caption:string geo_point:InputGeoPoint crop:InputPhotoCrop = photos.Photo; +photos.deletePhotos#87cf7f2f id:Vector = Vector; + +upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool; +upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; + +help.getConfig#c4f9186b = Config; +help.getNearestDc#1fb33026 = NearestDc; +help.getAppUpdate#c812ac7e device_model:string system_version:string app_version:string lang_code:string = help.AppUpdate; +help.saveAppLog#6f02f748 events:Vector = Bool; +help.getInviteText#a4a95186 lang_code:string = help.InviteText; + +photos.getUserPhotos#b7ee553c user_id:InputUser offset:int max_id:int limit:int = photos.Photos; + +messages.forwardMessage#33963bf9 peer:InputPeer id:int random_id:long = Updates; +messages.sendBroadcast#bf73f4da contacts:Vector random_id:Vector message:string media:InputMedia = Updates; + +geochats.getLocated#7f192d8f geo_point:InputGeoPoint radius:int limit:int = geochats.Located; +geochats.getRecents#e1427e6f offset:int limit:int = geochats.Messages; +geochats.checkin#55b3e8fb peer:InputGeoChat = geochats.StatedMessage; +geochats.getFullChat#6722dd6f peer:InputGeoChat = messages.ChatFull; +geochats.editChatTitle#4c8e2273 peer:InputGeoChat title:string address:string = geochats.StatedMessage; +geochats.editChatPhoto#35d81a95 peer:InputGeoChat photo:InputChatPhoto = geochats.StatedMessage; +geochats.search#cfcdc44d peer:InputGeoChat q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = geochats.Messages; +geochats.getHistory#b53f7a68 peer:InputGeoChat offset:int max_id:int limit:int = geochats.Messages; +geochats.setTyping#8b8a729 peer:InputGeoChat typing:Bool = Bool; +geochats.sendMessage#61b0044 peer:InputGeoChat message:string random_id:long = geochats.StatedMessage; +geochats.sendMedia#b8f0deff peer:InputGeoChat media:InputMedia random_id:long = geochats.StatedMessage; +geochats.createGeoChat#e092e16 title:string geo_point:InputGeoPoint address:string venue:string = geochats.StatedMessage; + +messages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig; +messages.requestEncryption#f64daf43 user_id:InputUser random_id:int g_a:bytes = EncryptedChat; +messages.acceptEncryption#3dbc0415 peer:InputEncryptedChat g_b:bytes key_fingerprint:long = EncryptedChat; +messages.discardEncryption#edd923c5 chat_id:int = Bool; +messages.setEncryptedTyping#791451ed peer:InputEncryptedChat typing:Bool = Bool; +messages.readEncryptedHistory#7f4b690a peer:InputEncryptedChat max_date:int = Bool; +messages.sendEncrypted#a9776773 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.sendEncryptedFile#9a901b66 peer:InputEncryptedChat random_id:long data:bytes file:InputEncryptedFile = messages.SentEncryptedMessage; +messages.sendEncryptedService#32d439a4 peer:InputEncryptedChat random_id:long data:bytes = messages.SentEncryptedMessage; +messages.receivedQueue#55a5bb66 max_qts:int = Vector; + +upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool; + +initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; + +help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#36a73f77 id:Vector = messages.AffectedMessages; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; + +account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules; +account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector = account.PrivacyRules; +account.deleteAccount#418d4e0b reason:string = Bool; +account.getAccountTTL#8fc711d = AccountDaysTTL; +account.setAccountTTL#2442485e ttl:AccountDaysTTL = Bool; + +invokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X; + +contacts.resolveUsername#bf0131c username:string = User; + +account.sendChangePhoneCode#a407a8f4 phone_number:string = account.SentChangePhoneCode; +account.changePhone#70c32edb phone_number:string phone_code_hash:string phone_code:string = User; + +messages.getStickers#ae22e045 emoticon:string hash:string = messages.Stickers; +messages.getAllStickers#aa3bc868 hash:string = messages.AllStickers; + +account.updateDeviceLocked#38df3532 period:int = Bool; + +auth.importBotAuthorization#67a3ff2c flags:int api_id:int api_hash:string bot_auth_token:string = auth.Authorization; + +messages.getWebPagePreview#25223e24 message:string = MessageMedia; + +account.getAuthorizations#e320c158 = account.Authorizations; +account.resetAuthorization#df77f3bc hash:long = Bool; +account.getPassword#548a30f5 = account.Password; +account.getPasswordSettings#bc8d11bb current_password_hash:bytes = account.PasswordSettings; +account.updatePasswordSettings#fa7c4b86 current_password_hash:bytes new_settings:account.PasswordInputSettings = Bool; + +auth.checkPassword#a63011e password_hash:bytes = auth.Authorization; +auth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery; +auth.recoverPassword#4ea56e92 code:string = auth.Authorization; + +invokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X; + +messages.exportChatInvite#7d885289 chat_id:int = ExportedChatInvite; +messages.checkChatInvite#3eadb1bb hash:string = ChatInvite; +messages.importChatInvite#6c50051c hash:string = Updates; +messages.getStickerSet#2619a90e stickerset:InputStickerSet = messages.StickerSet; +messages.installStickerSet#efbbfae9 stickerset:InputStickerSet = Bool; +messages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool; +messages.startBot#1b3e0ffc bot:InputUser chat_id:int random_id:long start_param:string = Updates; diff --git a/libs/tgl/src/structures.c b/libs/tgl/src/structures.c new file mode 100644 index 0000000000..a680e4c415 --- /dev/null +++ b/libs/tgl/src/structures.c @@ -0,0 +1,2311 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#ifdef HAVE_STRINGS_H +#include +#endif +#include "tgl-structures.h" +#include "mtproto-common.h" +//#include "telegram.h" +#include "tree.h" +#include +#include +#include +#include "queries.h" +#include "tgl-binlog.h" +#include "tgl-methods-in.h" +#include "updates.h" +#include "mtproto-client.h" + +#include "tgl.h" +#include "auto.h" +#include "auto/auto-types.h" +#include "auto/auto-skip.h" +#include "auto/auto-fetch-ds.h" +#include "auto/auto-free-ds.h" + +#define sha1 SHA1 +#if defined(WIN32) || defined(_WIN32) +#define bzero(b,len) (memset((b), '\0', (len)) ) +#endif + +struct random2local { + long long random_id; + int local_id; +}; + +static int id_cmp (struct tgl_message *M1, struct tgl_message *M2); +#define peer_cmp(a,b) (tgl_cmp_peer_id (a->id, b->id)) +#define peer_cmp_name(a,b) (strcmp (a->print_name, b->print_name)) + +static int random_id_cmp (struct random2local *L, struct random2local *R) { + if (L->random_id < R->random_id) { return -1; } + if (L->random_id > R->random_id) { return 1; } + return 0; +} + +static int photo_id_cmp (struct tgl_photo *L, struct tgl_photo *R) { + if (L->id < R->id) { return -1; } + if (L->id > R->id) { return 1; } + return 0; +} + +static int document_id_cmp (struct tgl_document *L, struct tgl_document *R) { + if (L->id < R->id) { return -1; } + if (L->id > R->id) { return 1; } + return 0; +} + +static int webpage_id_cmp (struct tgl_webpage *L, struct tgl_webpage *R) { + if (L->id < R->id) { return -1; } + if (L->id > R->id) { return 1; } + return 0; +} + +DEFINE_TREE(peer,tgl_peer_t *,peer_cmp,0) +DEFINE_TREE(peer_by_name,tgl_peer_t *,peer_cmp_name,0) +DEFINE_TREE(message,struct tgl_message *,id_cmp,0) +DEFINE_TREE(random_id,struct random2local *, random_id_cmp,0) +DEFINE_TREE(photo,struct tgl_photo *,photo_id_cmp,0) +DEFINE_TREE(document,struct tgl_document *,document_id_cmp,0) +DEFINE_TREE(webpage,struct tgl_webpage *,webpage_id_cmp,0) + + +char *tgls_default_create_print_name (struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4) { + const char *d[4]; + d[0] = a1; d[1] = a2; d[2] = a3; d[3] = a4; + static char buf[10000]; + buf[0] = 0; + int i; + int p = 0; + for (i = 0; i < 4; i++) { + if (d[i] && strlen (d[i])) { + p += tsnprintf (buf + p, 9999 - p, "%s%s", p ? "_" : "", d[i]); + assert (p < 9990); + } + } + char *s = buf; + while (*s) { + if (((unsigned char)*s) <= ' ') { *s = '_'; } + if (*s == '#') { *s = '@'; } + s++; + } + s = buf; + int fl = strlen (s); + int cc = 0; + while (1) { + tgl_peer_t *P = tgl_peer_get_by_name (TLS, s); + if (!P || !tgl_cmp_peer_id (P->id, id)) { + break; + } + cc ++; + assert (cc <= 9999); + tsnprintf (s + fl, 9999 - fl, "#%d", cc); + } + return tstrdup (s); +} + +enum tgl_typing_status tglf_fetch_typing_new (struct tl_ds_send_message_action *DS_SMA) { + if (!DS_SMA) { return 0; } + switch (DS_SMA->magic) { + case CODE_send_message_typing_action: + return tgl_typing_typing; + case CODE_send_message_cancel_action: + return tgl_typing_cancel; + case CODE_send_message_record_video_action: + return tgl_typing_record_video; + case CODE_send_message_upload_video_action: + return tgl_typing_upload_video; + case CODE_send_message_record_audio_action: + return tgl_typing_record_audio; + case CODE_send_message_upload_audio_action: + return tgl_typing_upload_audio; + case CODE_send_message_upload_photo_action: + return tgl_typing_upload_photo; + case CODE_send_message_upload_document_action: + return tgl_typing_upload_document; + case CODE_send_message_geo_location_action: + return tgl_typing_geo; + case CODE_send_message_choose_contact_action: + return tgl_typing_choose_contact; + default: + assert (0); + return tgl_typing_none; + } +} + +enum tgl_typing_status tglf_fetch_typing (void) { + struct tl_ds_send_message_action *DS_SMA = fetch_ds_type_send_message_action (TYPE_TO_PARAM (send_message_action)); + enum tgl_typing_status res = tglf_fetch_typing_new (DS_SMA); + free_ds_type_send_message_action (DS_SMA, TYPE_TO_PARAM (send_message_action)); + return res; +} + +/* {{{ Fetch */ + +int tglf_fetch_file_location_new (struct tgl_state *TLS, struct tgl_file_location *loc, struct tl_ds_file_location *DS_FL) { + if (!DS_FL) { return 0; } + loc->dc = DS_LVAL (DS_FL->dc_id); + loc->volume = DS_LVAL (DS_FL->volume_id); + loc->local_id = DS_LVAL (DS_FL->local_id); + loc->secret = DS_LVAL (DS_FL->secret); + return 0; +} + +int tglf_fetch_user_status_new (struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U, struct tl_ds_user_status *DS_US) { + if (!DS_US) { return 0; } + switch (DS_US->magic) { + case CODE_user_status_empty: + if (S->online) { + tgl_insert_status_update (TLS, U); + if (S->online == 1) { + tgl_remove_status_expire (TLS, U); + } + } + S->online = 0; + S->when = 0; + break; + case CODE_user_status_online: + { + if (S->online != 1) { + S->when = DS_LVAL (DS_US->expires); + if (S->online) { + tgl_insert_status_update (TLS, U); + } + tgl_insert_status_expire (TLS, U); + S->online = 1; + } else { + if (DS_LVAL (DS_US->expires) != S->when) { + S->when = DS_LVAL (DS_US->expires); + tgl_remove_status_expire (TLS, U); + tgl_insert_status_expire (TLS, U); + } + } + } + break; + case CODE_user_status_offline: + if (S->online != -1) { + if (S->online) { + tgl_insert_status_update (TLS, U); + } + if (S->online == 1) { + tgl_remove_status_expire (TLS, U); + } + } + S->online = -1; + S->when = DS_LVAL (DS_US->was_online); + break; + case CODE_user_status_recently: + if (S->online != -2) { + if (S->online) { + tgl_insert_status_update (TLS, U); + } + if (S->online == 1) { + tgl_remove_status_expire (TLS, U); + } + } + S->online = -2; + break; + case CODE_user_status_last_week: + if (S->online != -3) { + if (S->online) { + tgl_insert_status_update (TLS, U); + } + if (S->online == 1) { + tgl_remove_status_expire (TLS, U); + } + } + S->online = -3; + break; + case CODE_user_status_last_month: + if (S->online != -4) { + if (S->online) { + tgl_insert_status_update (TLS, U); + } + if (S->online == 1) { + tgl_remove_status_expire (TLS, U); + } + } + S->online = -4; + break; + default: + assert (0); + } + return 0; +} + +int tglf_fetch_user_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user *DS_U) { + if (!DS_U) { return 0; } + U->id = TGL_MK_USER (DS_LVAL (DS_U->id)); + if (DS_U->magic == CODE_user_empty) { + return 0; + } + + int flags = U->flags & 0xffff; + + if (DS_LVAL (DS_U->flags) & (1 << 10)) { + bl_do_set_our_id (TLS, tgl_get_peer_id (U->id)); + flags |= TGLUF_SELF; + } + + if (DS_LVAL (DS_U->flags) & (1 << 11)) { + flags |= TGLUF_CONTACT; + } + + if (DS_LVAL (DS_U->flags) & (1 << 12)) { + flags |= TGLUF_MUTUAL_CONTACT; + } + + + if (DS_LVAL (DS_U->flags) & (1 << 14)) { + flags |= TGLUF_BOT; + } + /* + if (DS_LVAL (DS_U->flags) & (1 << 15)) { + flags |= TGLUF_BOT_FULL_ACCESS; + } + + if (DS_LVAL (DS_U->flags) & (1 << 16)) { + flags |= TGLUF_BOT_NO_GROUPS; + }*/ + + if (!(flags & TGLUF_CREATED)) { + flags |= TGLUF_CREATE | TGLUF_CREATED; + } + + bl_do_user_new (TLS, tgl_get_peer_id (U->id), + DS_U->access_hash, + DS_STR (DS_U->first_name), + DS_STR (DS_U->last_name), + DS_STR (DS_U->phone), + DS_STR (DS_U->username), + NULL, + NULL, 0, NULL, 0, + DS_U->photo, + NULL, NULL, + NULL, + flags + ); + + if (DS_U->status) { + assert (tglf_fetch_user_status_new (TLS, &U->status, U, DS_U->status) >= 0); + } + + if (DS_LVAL (DS_U->flags) & (1 << 13)) { + if (!(U->flags & TGLUF_DELETED)) { + bl_do_user_delete (TLS, U); + } + } + + return 0; +} + +void tglf_fetch_user_full_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user_full *DS_UF) { + if (!DS_UF) { return; } + + tglf_fetch_user_new (TLS, U, DS_UF->user); + + int flags = U->flags & 0xffff; + + if (DS_BVAL (DS_UF->blocked)) { + flags |= TGLUF_BLOCKED; + } else { + flags &= ~TGLUF_BLOCKED; + } + + bl_do_user_new (TLS, tgl_get_peer_id (U->id), + NULL, + NULL, 0, + NULL, 0, + NULL, 0, + NULL, 0, + DS_UF->profile_photo, + //DS_STR (DS_UF->real_first_name), DS_STR (DS_UF->real_last_name), + NULL, 0, NULL, 0, + NULL, + NULL, NULL, + DS_UF->bot_info, + flags + ); +} + +void str_to_256 (unsigned char *dst, char *src, int src_len) { + if (src_len >= 256) { + memcpy (dst, src + src_len - 256, 256); + } else { + bzero (dst, 256 - src_len); + memcpy (dst + 256 - src_len, src, src_len); + } +} + +void str_to_32 (unsigned char *dst, char *src, int src_len) { + if (src_len >= 32) { + memcpy (dst, src + src_len - 32, 32); + } else { + bzero (dst, 32 - src_len); + memcpy (dst + 32 - src_len, src, src_len); + } +} + +void tglf_fetch_encrypted_chat_new (struct tgl_state *TLS, struct tgl_secret_chat *U, struct tl_ds_encrypted_chat *DS_EC) { + if (!DS_EC) { return; } + U->id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id)); + if (DS_EC->magic == CODE_encrypted_chat_empty) { + return; + } + int new = !(U->flags & TGLPF_CREATED); + + if (DS_EC->magic == CODE_encrypted_chat_discarded) { + if (new) { + vlogprintf (E_WARNING, "Unknown chat in deleted state. May be we forgot something...\n"); + return; + } + bl_do_encr_chat_delete (TLS, U); + //write_secret_chat_file (); + return; + } + + static unsigned char g_key[256]; + if (new) { + if (DS_EC->magic != CODE_encrypted_chat_requested) { + vlogprintf (E_WARNING, "Unknown chat. May be we forgot something...\n"); + return; + } + + str_to_256 (g_key, DS_STR (DS_EC->g_a)); + + int user_id = DS_LVAL (DS_EC->participant_id) + DS_LVAL (DS_EC->admin_id) - TLS->our_id; + int r = sc_request; + bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id), + DS_EC->access_hash, + DS_EC->date, + DS_EC->admin_id, + &user_id, + NULL, + (void *)g_key, + NULL, + &r, + NULL, NULL, NULL, NULL, NULL, + NULL, + TGLECF_CREATE | TGLECF_CREATED + ); + } else { + if (DS_EC->magic == CODE_encrypted_chat_waiting) { + int r = sc_waiting; + bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id), + DS_EC->access_hash, + DS_EC->date, + NULL, + NULL, + NULL, + NULL, + NULL, + &r, + NULL, NULL, NULL, NULL, NULL, + NULL, + TGL_FLAGS_UNCHANGED + ); + return; // We needed only access hash from here + } + + str_to_256 (g_key, DS_STR (DS_EC->g_a_or_b)); + + //write_secret_chat_file (); + int r = sc_ok; + bl_do_encr_chat_new (TLS, tgl_get_peer_id (U->id), + DS_EC->access_hash, + DS_EC->date, + NULL, + NULL, + NULL, + g_key, + NULL, + &r, + NULL, NULL, NULL, NULL, NULL, + DS_EC->key_fingerprint, + TGL_FLAGS_UNCHANGED + ); + } +} + +void tglf_fetch_chat_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_chat *DS_C) { + if (!DS_C) { return; } + + C->id = TGL_MK_CHAT (DS_LVAL (DS_C->id)); + if (DS_C->magic == CODE_chat_empty) { + return; + } + + int flags = C->flags & 0xffff; + if (!(flags & TGLCF_CREATED)) { + flags |= TGLCF_CREATE | TGLCF_CREATED; + } + + bl_do_chat_new (TLS, tgl_get_peer_id (C->id), + DS_STR (DS_C->title), + DS_C->participants_count, + DS_C->date, + NULL, + NULL, + DS_C->photo, + NULL, + NULL, + NULL, NULL, + flags + ); +} + +void tglf_fetch_chat_full_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_messages_chat_full *DS_MCF) { + if (!DS_MCF) { return; } + struct tl_ds_chat_full *DS_CF = DS_MCF->full_chat; + + C->id = TGL_MK_CHAT (DS_LVAL (DS_CF->id)); + + bl_do_chat_new (TLS, tgl_get_peer_id (C->id), + NULL, 0, + NULL, + NULL, + DS_CF->participants->version, + (struct tl_ds_vector *)DS_CF->participants->participants, + NULL, + DS_CF->chat_photo, + DS_CF->participants->admin_id, + NULL, NULL, + C->flags & 0xffff + ); + + if (DS_MCF->users) { + int i; + for (i = 0; i < DS_LVAL (DS_MCF->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_MCF->users->data[i]); + } + } + + if (DS_MCF->chats) { + int i; + for (i = 0; i < DS_LVAL (DS_MCF->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_MCF->chats->data[i]); + } + } + + if (DS_CF->bot_info) { + int n = DS_LVAL (DS_CF->bot_info->cnt); + int i; + for (i = 0; i < n; i++) { + struct tl_ds_bot_info *DS_BI = DS_CF->bot_info->data[i]; + + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_BI->user_id))); + if (P && (P->flags & TGLCF_CREATED)) { + bl_do_user_new (TLS, tgl_get_peer_id (P->id), + NULL, + NULL, 0, + NULL, 0, + NULL, 0, + NULL, 0, + NULL, + NULL, 0, NULL, 0, + NULL, + NULL, NULL, + DS_BI, + TGL_FLAGS_UNCHANGED + ); + } + } + } +} + +void tglf_fetch_photo_size_new (struct tgl_state *TLS, struct tgl_photo_size *S, struct tl_ds_photo_size *DS_PS) { + memset (S, 0, sizeof (*S)); + + S->type = DS_STR_DUP (DS_PS->type); + S->w = DS_LVAL (DS_PS->w); + S->h = DS_LVAL (DS_PS->h); + S->size = DS_LVAL (DS_PS->size); + if (DS_PS->bytes) { + S->size = DS_PS->bytes->len; + } + + tglf_fetch_file_location_new (TLS, &S->loc, DS_PS->location); +} + +void tglf_fetch_geo_new (struct tgl_state *TLS, struct tgl_geo *G, struct tl_ds_geo_point *DS_GP) { + G->longitude = DS_LVAL (DS_GP->longitude); + G->latitude = DS_LVAL (DS_GP->latitude); +} + +struct tgl_photo *tglf_fetch_alloc_photo_new (struct tgl_state *TLS, struct tl_ds_photo *DS_P) { + if (!DS_P) { return NULL; } + if (DS_P->magic == CODE_photo_empty) { return NULL; } + + struct tgl_photo *P = tgl_photo_get (TLS, DS_LVAL (DS_P->id)); + if (P) { + P->refcnt ++; + return P; + } + + + P = talloc0 (sizeof (*P)); + P->id = DS_LVAL (DS_P->id); + P->refcnt = 1; + + tgl_photo_insert (TLS, P); + + P->access_hash = DS_LVAL (DS_P->access_hash); + P->user_id = DS_LVAL (DS_P->user_id); + P->date = DS_LVAL (DS_P->date); + P->caption = NULL;//DS_STR_DUP (DS_P->caption); + tglf_fetch_geo_new (TLS, &P->geo, DS_P->geo); + + P->sizes_num = DS_LVAL (DS_P->sizes->cnt); + P->sizes = talloc (sizeof (struct tgl_photo_size) * P->sizes_num); + int i; + for (i = 0; i < P->sizes_num; i++) { + tglf_fetch_photo_size_new (TLS, &P->sizes[i], DS_P->sizes->data[i]); + } + + return P; +} + +struct tgl_document *tglf_fetch_alloc_video_new (struct tgl_state *TLS, struct tl_ds_video *DS_V) { + if (!DS_V) { return NULL; } + + if (DS_V->magic == CODE_video_empty) { return NULL; } + + struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_V->id)); + if (D) { + D->refcnt ++; + return D; + } + + + D = talloc0 (sizeof (*D)); + D->id = DS_LVAL (DS_V->id); + D->refcnt = 1; + + tgl_document_insert (TLS, D); + + D->flags = TGLDF_VIDEO; + + D->access_hash = DS_LVAL (DS_V->access_hash); + D->user_id = DS_LVAL (DS_V->user_id); + D->date = DS_LVAL (DS_V->date); + D->caption = NULL;//DS_STR_DUP (DS_V->caption); + D->duration = DS_LVAL (DS_V->duration); + D->mime_type = tstrdup ("video/");//DS_STR_DUP (DS_V->mime_type); + D->size = DS_LVAL (DS_V->size); + tglf_fetch_photo_size_new (TLS, &D->thumb, DS_V->thumb); + + D->dc_id = DS_LVAL (DS_V->dc_id); + D->w = DS_LVAL (DS_V->w); + D->h = DS_LVAL (DS_V->h); + return D; +} + +struct tgl_document *tglf_fetch_alloc_audio_new (struct tgl_state *TLS, struct tl_ds_audio *DS_A) { + if (!DS_A) { return NULL; } + + if (DS_A->magic == CODE_audio_empty) { return NULL; } + + struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_A->id)); + if (D) { + D->refcnt ++; + return D; + } + + + D = talloc0 (sizeof (*D)); + D->id = DS_LVAL (DS_A->id); + D->refcnt = 1; + + tgl_document_insert (TLS, D); + + D->flags = TGLDF_AUDIO; + + D->access_hash = DS_LVAL (DS_A->access_hash); + D->user_id = DS_LVAL (DS_A->user_id); + D->date = DS_LVAL (DS_A->date); + D->duration = DS_LVAL (DS_A->duration); + D->mime_type = DS_STR_DUP (DS_A->mime_type); + D->size = DS_LVAL (DS_A->size); + D->dc_id = DS_LVAL (DS_A->dc_id); + + return D; +} + +void tglf_fetch_document_attribute_new (struct tgl_state *TLS, struct tgl_document *D, struct tl_ds_document_attribute *DS_DA) { + switch (DS_DA->magic) { + case CODE_document_attribute_image_size: + D->flags |= TGLDF_IMAGE; + D->w = DS_LVAL (DS_DA->w); + D->h = DS_LVAL (DS_DA->h); + return; + case CODE_document_attribute_animated: + D->flags |= TGLDF_ANIMATED; + return; + case CODE_document_attribute_sticker: + case CODE_document_attribute_sticker_l28: + D->flags |= TGLDF_STICKER; + return; + case CODE_document_attribute_video: + D->flags |= TGLDF_VIDEO; + D->duration = DS_LVAL (DS_DA->duration); + D->w = DS_LVAL (DS_DA->w); + D->h = DS_LVAL (DS_DA->h); + return; + case CODE_document_attribute_audio: + D->flags |= TGLDF_AUDIO; + D->duration = DS_LVAL (DS_DA->duration); + return; + case CODE_document_attribute_filename: + D->caption = DS_STR_DUP (DS_DA->file_name); + return; + default: + assert (0); + } +} + +struct tgl_document *tglf_fetch_alloc_document_new (struct tgl_state *TLS, struct tl_ds_document *DS_D) { + if (!DS_D) { return NULL; } + + if (DS_D->magic == CODE_document_empty) { return NULL; } + + struct tgl_document *D = tgl_document_get (TLS, DS_LVAL (DS_D->id)); + if (D) { + D->refcnt ++; + return D; + } + + + D = talloc0 (sizeof (*D)); + D->id = DS_LVAL (DS_D->id); + D->refcnt = 1; + + tgl_document_insert (TLS, D); + + D->access_hash = DS_LVAL (DS_D->access_hash); + D->user_id = DS_LVAL (DS_D->user_id); + D->date = DS_LVAL (DS_D->date); + D->caption = DS_STR_DUP (DS_D->file_name); + D->mime_type = DS_STR_DUP (DS_D->mime_type); + D->size = DS_LVAL (DS_D->size); + D->dc_id = DS_LVAL (DS_D->dc_id); + + tglf_fetch_photo_size_new (TLS, &D->thumb, DS_D->thumb); + + if (DS_D->attributes) { + int i; + for (i = 0; i < DS_LVAL (DS_D->attributes->cnt); i++) { + tglf_fetch_document_attribute_new (TLS, D, DS_D->attributes->data[i]); + } + } + return D; +} + +struct tgl_webpage *tglf_fetch_alloc_webpage_new (struct tgl_state *TLS, struct tl_ds_web_page *DS_W) { + if (!DS_W) { return NULL; } + + struct tgl_webpage *W = tgl_webpage_get (TLS, DS_LVAL (DS_W->id)); + if (W) { + W->refcnt ++; + } else { + W = talloc0 (sizeof (*W)); + W->id = DS_LVAL (DS_W->id); + W->refcnt = 1; + + tgl_webpage_insert (TLS, W); + } + + if (!W->url) { + W->url = DS_STR_DUP (DS_W->url); + } + + if (!W->display_url) { + W->display_url = DS_STR_DUP (DS_W->display_url); + } + + if (!W->type) { + W->type = DS_STR_DUP (DS_W->type); + } + + if (!W->site_name) { + W->site_name = DS_STR_DUP (DS_W->site_name); + } + + if (!W->title) { + W->title = DS_STR_DUP (DS_W->title); + } + + if (!W->photo) { + W->photo = tglf_fetch_alloc_photo_new (TLS, DS_W->photo); + } + + if (!W->description) { + W->description = DS_STR_DUP (DS_W->description); + } + + if (!W->embed_url) { + W->embed_url = DS_STR_DUP (DS_W->embed_url); + } + + if (!W->embed_type) { + W->embed_type = DS_STR_DUP (DS_W->embed_type); + } + + W->embed_width = DS_LVAL (DS_W->embed_width); + + W->embed_height = DS_LVAL (DS_W->embed_height); + + W->duration = DS_LVAL (DS_W->duration); + + if (!W->author) { + W->author = DS_STR_DUP (DS_W->author); + } + return W; +} + +void tglf_fetch_message_action_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_message_action *DS_MA) { + if (!DS_MA) { return; } + memset (M, 0, sizeof (*M)); + + switch (DS_MA->magic) { + case CODE_message_action_empty: + M->type = tgl_message_action_none; + break; + case CODE_message_action_geo_chat_create: + { + M->type = tgl_message_action_geo_chat_create; + assert (0); + } + break; + case CODE_message_action_geo_chat_checkin: + M->type = tgl_message_action_geo_chat_checkin; + break; + case CODE_message_action_chat_create: + { + M->type = tgl_message_action_chat_create; + M->title = DS_STR_DUP (DS_MA->title); + + M->user_num = DS_LVAL (DS_MA->users->cnt); + M->users = talloc (M->user_num * 4); + int i; + for (i = 0; i < M->user_num; i++) { + M->users[i] = DS_LVAL (DS_MA->users->data[i]); + } + } + break; + case CODE_message_action_chat_edit_title: + M->type = tgl_message_action_chat_edit_title; + M->new_title = DS_STR_DUP (DS_MA->title); + break; + case CODE_message_action_chat_edit_photo: + M->type = tgl_message_action_chat_edit_photo; + M->photo = tglf_fetch_alloc_photo_new (TLS, DS_MA->photo); + break; + case CODE_message_action_chat_delete_photo: + M->type = tgl_message_action_chat_delete_photo; + break; + case CODE_message_action_chat_add_user: + M->type = tgl_message_action_chat_add_user; + M->user = DS_LVAL (DS_MA->user_id); + break; + case CODE_message_action_chat_delete_user: + M->type = tgl_message_action_chat_delete_user; + M->user = DS_LVAL (DS_MA->user_id); + break; + case CODE_message_action_chat_joined_by_link: + M->type = tgl_message_action_chat_add_user_by_link; + M->user = DS_LVAL (DS_MA->inviter_id); + break; + default: + assert (0); + } +} + +void tglf_fetch_message_short_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U) { + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id))); + if (!P || !(P->flags & TGLPF_CREATED)) { + tgl_do_get_difference (TLS, 0, 0, 0); + return; + } + + int flags = M->flags & 0xffff; + + if (M->flags & TGLMF_PENDING) { + M->flags ^= TGLMF_PENDING; + } + + if (!(flags & TGLMF_CREATED)) { + flags |= TGLMF_CREATE | TGLMF_CREATED; + } + + int f = DS_LVAL (DS_U->flags); + + if (f & 1) { + flags |= TGLMF_UNREAD; + } + if (f & 2) { + flags |= TGLMF_OUT; + } + if (f & 16) { + flags |= TGLMF_MENTION; + } + + struct tl_ds_message_media A; + A.magic = CODE_message_media_empty; + int type = TGL_PEER_USER; + + bl_do_create_message_new (TLS, DS_LVAL (DS_U->id), + (f & 2) ? &TLS->our_id : DS_U->user_id, + &type, (f & 2) ? DS_U->user_id : &TLS->our_id, + DS_U->fwd_from_id, + DS_U->fwd_date, + DS_U->date, + DS_STR (DS_U->message), + &A, + NULL, + DS_U->reply_to_msg_id, + NULL, + flags + ); +} + +void tglf_fetch_message_short_chat_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U) { + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->from_id))); + if (!P || !(P->flags & TGLPF_CREATED)) { + tgl_do_get_difference (TLS, 0, 0, 0); + return; + } + P = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_U->chat_id))); + if (!P || !(P->flags & TGLPF_CREATED)) { + tgl_do_get_difference (TLS, 0, 0, 0); + return; + } + + int flags = M->flags & 0xffff; + + if (M->flags & TGLMF_PENDING) { + M->flags ^= TGLMF_PENDING; + } + + if (!(flags & TGLMF_CREATED)) { + flags |= TGLMF_CREATE | TGLMF_CREATED; + } + + int f = DS_LVAL (DS_U->flags); + + if (f & 1) { + flags |= TGLMF_UNREAD; + } + if (f & 2) { + flags |= TGLMF_OUT; + } + if (f & 16) { + flags |= TGLMF_MENTION; + } + + struct tl_ds_message_media A; + A.magic = CODE_message_media_empty; + + int type = TGL_PEER_CHAT; + bl_do_create_message_new (TLS, DS_LVAL (DS_U->id), + DS_U->from_id, + &type, DS_U->chat_id, + DS_U->fwd_from_id, + DS_U->fwd_date, + DS_U->date, + DS_STR (DS_U->message), + &A, + NULL, + DS_U->reply_to_msg_id, + NULL, + flags + ); +} + + +void tglf_fetch_message_media_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_message_media *DS_MM) { + if (!DS_MM) { return; } + memset (M, 0, sizeof (*M)); + switch (DS_MM->magic) { + case CODE_message_media_empty: + M->type = tgl_message_media_none; + break; + case CODE_message_media_photo: + case CODE_message_media_photo_l27: + M->type = tgl_message_media_photo; + M->photo = tglf_fetch_alloc_photo_new (TLS, DS_MM->photo); + M->caption = DS_STR_DUP (DS_MM->caption); + break; + case CODE_message_media_video: + case CODE_message_media_video_l27: + M->type = tgl_message_media_video; + M->document = tglf_fetch_alloc_video_new (TLS, DS_MM->video); + M->caption = DS_STR_DUP (DS_MM->caption); + break; + case CODE_message_media_audio: + M->type = tgl_message_media_audio; + M->document = tglf_fetch_alloc_audio_new (TLS, DS_MM->audio); + break; + case CODE_message_media_document: + M->type = tgl_message_media_document; + M->document = tglf_fetch_alloc_document_new (TLS, DS_MM->document); + break; + case CODE_message_media_geo: + M->type = tgl_message_media_geo; + tglf_fetch_geo_new (TLS, &M->geo, DS_MM->geo); + break; + case CODE_message_media_contact: + M->type = tgl_message_media_contact; + M->phone = DS_STR_DUP (DS_MM->phone_number); + M->first_name = DS_STR_DUP (DS_MM->first_name); + M->last_name = DS_STR_DUP (DS_MM->last_name); + M->user_id = DS_LVAL (DS_MM->user_id); + break; + //case CODE_message_media_unsupported: + //case CODE_message_media_unsupported_l22: + // M->type = tgl_message_media_unsupported; + // break; + case CODE_message_media_web_page: + M->type = tgl_message_media_webpage; + M->webpage = tglf_fetch_alloc_webpage_new (TLS, DS_MM->webpage); + break; + case CODE_message_media_venue: + M->type = tgl_message_media_venue; + tglf_fetch_geo_new (TLS, &M->venue.geo, DS_MM->geo); + M->venue.title = DS_STR_DUP (DS_MM->title); + M->venue.address = DS_STR_DUP (DS_MM->address); + M->venue.provider = DS_STR_DUP (DS_MM->provider); + M->venue.venue_id = DS_STR_DUP (DS_MM->venue_id); + break; + default: + assert (0); + } +} + +void tglf_fetch_message_media_encrypted_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_decrypted_message_media *DS_DMM) { + if (!DS_DMM) { return; } + + memset (M, 0, sizeof (*M)); + switch (DS_DMM->magic) { + case CODE_decrypted_message_media_empty: + M->type = tgl_message_media_none; + //M->type = CODE_message_media_empty; + break; + case CODE_decrypted_message_media_photo: + case CODE_decrypted_message_media_video: + case CODE_decrypted_message_media_video_l12: + case CODE_decrypted_message_media_document: + case CODE_decrypted_message_media_audio: + //M->type = CODE_decrypted_message_media_video; + M->type = tgl_message_media_document_encr; + + M->encr_document = talloc0 (sizeof (*M->encr_document)); + + switch (DS_DMM->magic) { + case CODE_decrypted_message_media_photo: + M->encr_document->flags = TGLDF_IMAGE; + break; + case CODE_decrypted_message_media_video: + case CODE_decrypted_message_media_video_l12: + M->encr_document->flags = TGLDF_VIDEO; + break; + case CODE_decrypted_message_media_document: + //M->encr_document->flags = TGLDF_DOCUMENT; + break; + case CODE_decrypted_message_media_audio: + M->encr_document->flags = TGLDF_AUDIO; + break; + } + + M->encr_document->w = DS_LVAL (DS_DMM->w); + M->encr_document->h = DS_LVAL (DS_DMM->h); + M->encr_document->size = DS_LVAL (DS_DMM->size); + M->encr_document->duration = DS_LVAL (DS_DMM->duration); + M->encr_document->mime_type = DS_STR_DUP (DS_DMM->mime_type); + + M->encr_document->key = talloc (32); + str_to_32 (M->encr_document->key, DS_STR (DS_DMM->key)); + M->encr_document->iv = talloc (32); + str_to_32 (M->encr_document->iv, DS_STR (DS_DMM->iv)); + break; + case CODE_decrypted_message_media_geo_point: + M->type = tgl_message_media_geo; + M->geo.latitude = DS_LVAL (DS_DMM->latitude); + M->geo.longitude = DS_LVAL (DS_DMM->longitude); + break; + case CODE_decrypted_message_media_contact: + M->type = tgl_message_media_contact; + M->phone = DS_STR_DUP (DS_DMM->phone_number); + M->first_name = DS_STR_DUP (DS_DMM->first_name); + M->last_name = DS_STR_DUP (DS_DMM->last_name); + M->user_id = DS_LVAL (DS_DMM->user_id); + break; + default: + assert (0); + } +} + +void tglf_fetch_message_action_encrypted_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_decrypted_message_action *DS_DMA) { + if (!DS_DMA) { return; } + + switch (DS_DMA->magic) { + case CODE_decrypted_message_action_set_message_t_t_l: + M->type = tgl_message_action_set_message_ttl; + M->ttl = DS_LVAL (DS_DMA->ttl_seconds); + break; + case CODE_decrypted_message_action_read_messages: + M->type = tgl_message_action_read_messages; + { + M->read_cnt = DS_LVAL (DS_DMA->random_ids->cnt); + + int i; + for (i = 0; i < M->read_cnt; i++) { + struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_DMA->random_ids->data[i])); + if (N) { + N->flags &= ~TGLMF_UNREAD; + } + } + } + break; + case CODE_decrypted_message_action_delete_messages: + M->type = tgl_message_action_delete_messages; + break; + case CODE_decrypted_message_action_screenshot_messages: + M->type = tgl_message_action_screenshot_messages; + { + M->screenshot_cnt = DS_LVAL (DS_DMA->random_ids->cnt); + } + break; + case CODE_decrypted_message_action_notify_layer: + M->type = tgl_message_action_notify_layer; + M->layer = DS_LVAL (DS_DMA->layer); + break; + case CODE_decrypted_message_action_flush_history: + M->type = tgl_message_action_flush_history; + break; + case CODE_decrypted_message_action_typing: + M->type = tgl_message_action_typing; + M->typing = tglf_fetch_typing_new (DS_DMA->action); + break; + case CODE_decrypted_message_action_resend: + M->type = tgl_message_action_resend; + M->start_seq_no = DS_LVAL (DS_DMA->start_seq_no); + M->end_seq_no = DS_LVAL (DS_DMA->end_seq_no); + break; + case CODE_decrypted_message_action_noop: + M->type = tgl_message_action_noop; + break; + case CODE_decrypted_message_action_request_key: + M->type = tgl_message_action_request_key; + + M->exchange_id = DS_LVAL (DS_DMA->exchange_id); + M->g_a = talloc (256); + str_to_256 (M->g_a, DS_STR (DS_DMA->g_a)); + break; + case CODE_decrypted_message_action_accept_key: + M->type = tgl_message_action_accept_key; + + M->exchange_id = DS_LVAL (DS_DMA->exchange_id); + M->g_a = talloc (256); + str_to_256 (M->g_a, DS_STR (DS_DMA->g_b)); + M->key_fingerprint = DS_LVAL (DS_DMA->key_fingerprint); + break; + case CODE_decrypted_message_action_commit_key: + M->type = tgl_message_action_commit_key; + + M->exchange_id = DS_LVAL (DS_DMA->exchange_id); + M->key_fingerprint = DS_LVAL (DS_DMA->key_fingerprint); + break; + case CODE_decrypted_message_action_abort_key: + M->type = tgl_message_action_abort_key; + + M->exchange_id = DS_LVAL (DS_DMA->exchange_id); + break; + default: + assert (0); + } +} + +tgl_peer_id_t tglf_fetch_peer_id_new (struct tgl_state *TLS, struct tl_ds_peer *DS_P) { + if (DS_P->magic == CODE_peer_user) { + return TGL_MK_USER (DS_LVAL (DS_P->user_id)); + } else { + return TGL_MK_CHAT (DS_LVAL (DS_P->chat_id)); + } +} + +void tglf_fetch_message_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_message *DS_M) { + if (!DS_M || DS_M->magic == CODE_message_empty) { return; } + + assert (M->id == DS_LVAL (DS_M->id)); + + tgl_peer_id_t to_id = tglf_fetch_peer_id_new (TLS, DS_M->to_id); + { + tgl_peer_t *P = tgl_peer_get (TLS, to_id); + if (!P || !(P->flags & TGLPF_CREATED)) { + tgl_do_get_difference (TLS, 0, 0, 0); + return; + } + P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_M->from_id))); + if (!P || !(P->flags & TGLPF_CREATED)) { + tgl_do_get_difference (TLS, 0, 0, 0); + return; + } + } + + int new = !(M->flags & TGLMF_CREATED); + + if (new) { + int peer_id = tgl_get_peer_id (to_id); + int peer_type = tgl_get_peer_type (to_id); + + int flags = 0; + if (DS_LVAL (DS_M->flags) & 1) { + flags |= TGLMF_UNREAD; + } + if (DS_LVAL (DS_M->flags) & 2) { + flags |= TGLMF_OUT; + } + if (DS_LVAL (DS_M->flags) & 16) { + flags |= TGLMF_MENTION; + } + + bl_do_create_message_new (TLS, DS_LVAL (DS_M->id), + DS_M->from_id, + &peer_type, &peer_id, + DS_M->fwd_from_id, DS_M->fwd_date, + DS_M->date, + DS_STR (DS_M->message), + DS_M->media, + DS_M->action, + DS_M->reply_to_msg_id, + DS_M->reply_markup, + flags | TGLMF_CREATE | TGLMF_CREATED + ); + } +} + +static int *decr_ptr; +static int *decr_end; + +static int decrypt_encrypted_message (struct tgl_secret_chat *E) { + int *msg_key = decr_ptr; + decr_ptr += 4; + assert (decr_ptr < decr_end); + static unsigned char sha1a_buffer[20]; + static unsigned char sha1b_buffer[20]; + static unsigned char sha1c_buffer[20]; + static unsigned char sha1d_buffer[20]; + + static unsigned char buf[64]; + + int *e_key = E->exchange_state != tgl_sce_committed ? E->key : E->exchange_key; + + memcpy (buf, msg_key, 16); + memcpy (buf + 16, e_key, 32); + sha1 (buf, 48, sha1a_buffer); + + memcpy (buf, e_key + 8, 16); + memcpy (buf + 16, msg_key, 16); + memcpy (buf + 32, e_key + 12, 16); + sha1 (buf, 48, sha1b_buffer); + + memcpy (buf, e_key + 16, 32); + memcpy (buf + 32, msg_key, 16); + sha1 (buf, 48, sha1c_buffer); + + memcpy (buf, msg_key, 16); + memcpy (buf + 16, e_key + 24, 32); + sha1 (buf, 48, sha1d_buffer); + + static unsigned char key[32]; + memcpy (key, sha1a_buffer + 0, 8); + memcpy (key + 8, sha1b_buffer + 8, 12); + memcpy (key + 20, sha1c_buffer + 4, 12); + + static unsigned char iv[32]; + memcpy (iv, sha1a_buffer + 8, 12); + memcpy (iv + 12, sha1b_buffer + 0, 8); + memcpy (iv + 20, sha1c_buffer + 16, 4); + memcpy (iv + 24, sha1d_buffer + 0, 8); + + AES_KEY aes_key; + AES_set_decrypt_key (key, 256, &aes_key); + AES_ige_encrypt ((void *)decr_ptr, (void *)decr_ptr, 4 * (decr_end - decr_ptr), &aes_key, iv, 0); + memset (&aes_key, 0, sizeof (aes_key)); + + int x = *(decr_ptr); + if (x < 0 || (x & 3)) { + return -1; + } + assert (x >= 0 && !(x & 3)); + sha1 ((void *)decr_ptr, 4 + x, sha1a_buffer); + + if (memcmp (sha1a_buffer + 4, msg_key, 16)) { + return -1; + } + return 0; +} + +void tglf_fetch_encrypted_message_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_encrypted_message *DS_EM) { + if (!DS_EM) { return; } + + int new = !(M->flags & TGLMF_CREATED); + if (!new) { + return; + } + + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_EM->chat_id))); + if (!P || P->encr_chat.state != sc_ok) { + vlogprintf (E_WARNING, "Encrypted message to unknown chat. Dropping\n"); + return; + } + + decr_ptr = (void *)DS_EM->bytes->data; + decr_end = decr_ptr + (DS_EM->bytes->len / 4); + + if (P->encr_chat.exchange_state == tgl_sce_committed && P->encr_chat.key_fingerprint == *(long long *)decr_ptr) { + tgl_do_confirm_exchange (TLS, (void *)P, 0); + assert (P->encr_chat.exchange_state == tgl_sce_none); + } + + long long key_fingerprint = P->encr_chat.exchange_state != tgl_sce_committed ? P->encr_chat.key_fingerprint : P->encr_chat.exchange_key_fingerprint; + if (*(long long *)decr_ptr != key_fingerprint) { + vlogprintf (E_WARNING, "Encrypted message with bad fingerprint to chat %s\n", P->print_name); + return; + } + + decr_ptr += 2; + + if (decrypt_encrypted_message (&P->encr_chat) < 0) { + vlogprintf (E_WARNING, "can not decrypt message\n"); + return; + } + + int *save_in_ptr = in_ptr; + int *save_in_end = in_end; + + in_ptr = decr_ptr; + int ll = *in_ptr; + in_end = in_ptr + ll / 4 + 1; + assert (fetch_int () == ll); + + if (skip_type_decrypted_message_layer (TYPE_TO_PARAM (decrypted_message_layer)) < 0 || in_ptr != in_end) { + vlogprintf (E_WARNING, "can not fetch message\n"); + in_ptr = save_in_ptr; + in_end = save_in_end; + return; + } + + in_ptr = decr_ptr; + assert (fetch_int () == ll); + + struct tl_ds_decrypted_message_layer *DS_DML = fetch_ds_type_decrypted_message_layer (TYPE_TO_PARAM (decrypted_message_layer)); + assert (DS_DML); + + in_ptr = save_in_ptr; + in_end = save_in_end; + + //bl_do_encr_chat_set_layer (TLS, (void *)P, DS_LVAL (DS_DML->layer)); + bl_do_encr_chat_new (TLS, tgl_get_peer_id (P->id), + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, DS_DML->layer, NULL, NULL, NULL, NULL, + TGL_FLAGS_UNCHANGED + ); + + int in_seq_no = DS_LVAL (DS_DML->out_seq_no); + int out_seq_no = DS_LVAL (DS_DML->in_seq_no); + + if (in_seq_no / 2 != P->encr_chat.in_seq_no) { + vlogprintf (E_WARNING, "Hole in seq in secret chat. in_seq_no = %d, expect_seq_no = %d\n", in_seq_no / 2, P->encr_chat.in_seq_no); + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); + return; + } + + if ((in_seq_no & 1) != 1 - (P->encr_chat.admin_id == TLS->our_id) || + (out_seq_no & 1) != (P->encr_chat.admin_id == TLS->our_id)) { + vlogprintf (E_WARNING, "Bad msg admin\n"); + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); + return; + } + if (out_seq_no / 2 > P->encr_chat.out_seq_no) { + vlogprintf (E_WARNING, "In seq no is bigger than our's out seq no (out_seq_no = %d, our_out_seq_no = %d). Drop\n", out_seq_no / 2, P->encr_chat.out_seq_no); + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); + return; + } + if (out_seq_no / 2 < P->encr_chat.last_in_seq_no) { + vlogprintf (E_WARNING, "Clients in_seq_no decreased (out_seq_no = %d, last_out_seq_no = %d). Drop\n", out_seq_no / 2, P->encr_chat.last_in_seq_no); + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); + return; + } + + struct tl_ds_decrypted_message *DS_DM = DS_DML->message; + if (M->id != DS_LVAL (DS_DM->random_id)) { + vlogprintf (E_ERROR, "Incorrect message: id = %"_PRINTF_INT64_"d, new_id = %"_PRINTF_INT64_"d\n", M->id, DS_LVAL (DS_DM->random_id)); + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); + return; + } + + int peer_type = TGL_PEER_ENCR_CHAT; + int peer_id = tgl_get_peer_id (P->id); + + bl_do_create_message_encr_new (TLS, M->id, &P->encr_chat.user_id, &peer_type, &peer_id, DS_EM->date, DS_STR (DS_DM->message), DS_DM->media, DS_DM->action, DS_EM->file, TGLMF_CREATE | TGLMF_CREATED | TGLMF_ENCRYPTED); + + if (in_seq_no >= 0 && out_seq_no >= 0) { + //bl_do_encr_chat_update_seq (TLS, (void *)P, in_seq_no / 2 + 1, out_seq_no / 2); + in_seq_no = in_seq_no / 2 + 1; + out_seq_no = out_seq_no / 2; + bl_do_encr_chat_new (TLS, tgl_get_peer_id (P->id), + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL, &in_seq_no, &out_seq_no, NULL, NULL, + TGL_FLAGS_UNCHANGED + ); + assert (P->encr_chat.in_seq_no == in_seq_no); + } + + free_ds_type_decrypted_message_layer (DS_DML, TYPE_TO_PARAM(decrypted_message_layer)); +} + +void tglf_fetch_encrypted_message_file_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_encrypted_file *DS_EF) { + if (DS_EF->magic == CODE_encrypted_file_empty) { + assert (M->type != tgl_message_media_document_encr); + } else { + assert (M->type == tgl_message_media_document_encr); + assert (M->encr_document); + + M->encr_document->id = DS_LVAL (DS_EF->id); + M->encr_document->access_hash = DS_LVAL (DS_EF->access_hash); + if (!M->encr_document->size) { + M->encr_document->size = DS_LVAL (DS_EF->size); + } + M->encr_document->dc_id = DS_LVAL (DS_EF->dc_id); + M->encr_document->key_fingerprint = DS_LVAL (DS_EF->key_fingerprint); + } +} + +static int id_cmp (struct tgl_message *M1, struct tgl_message *M2) { + if (M1->id < M2->id) { return -1; } + else if (M1->id > M2->id) { return 1; } + else { return 0; } +} + +static void increase_peer_size (struct tgl_state *TLS) { + if (TLS->peer_num == TLS->peer_size) { + int new_size = TLS->peer_size ? 2 * TLS->peer_size : 10; + int old_size = TLS->peer_size; + if (old_size) { + TLS->Peers = trealloc (TLS->Peers, old_size * sizeof (void *), new_size * sizeof (void *)); + } else { + TLS->Peers = talloc (new_size * sizeof (void *)); + } + TLS->peer_size = new_size; + } +} + +struct tgl_user *tglf_fetch_alloc_user_new (struct tgl_state *TLS, struct tl_ds_user *DS_U) { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->id))); + if (!U) { + TLS->users_allocated ++; + U = talloc0 (sizeof (*U)); + U->id = TGL_MK_USER (DS_LVAL (DS_U->id)); + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = U; + } + tglf_fetch_user_new (TLS, &U->user, DS_U); + return &U->user; +} + +struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat_new (struct tgl_state *TLS, struct tl_ds_encrypted_chat *DS_EC) { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id))); + if (!U) { + U = talloc0 (sizeof (*U)); + U->id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_EC->id)); + TLS->encr_chats_allocated ++; + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = U; + } + tglf_fetch_encrypted_chat_new (TLS, &U->encr_chat, DS_EC); + return &U->encr_chat; +} + +struct tgl_user *tglf_fetch_alloc_user_full_new (struct tgl_state *TLS, struct tl_ds_user_full *DS_U) { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user->id))); + if (U) { + tglf_fetch_user_full_new (TLS, &U->user, DS_U); + return &U->user; + } else { + TLS->users_allocated ++; + U = talloc0 (sizeof (*U)); + U->id = TGL_MK_USER (DS_LVAL (DS_U->user->id)); + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ()); + tglf_fetch_user_full_new (TLS, &U->user, DS_U); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = U; + return &U->user; + } +} + +struct tgl_message *tglf_fetch_alloc_message_new (struct tgl_state *TLS, struct tl_ds_message *DS_M) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_M->id)); + + if (!M) { + M = tglm_message_alloc (TLS, DS_LVAL (DS_M->id)); + } + tglf_fetch_message_new (TLS, M, DS_M); + return M; +} + +struct tgl_message *tglf_fetch_alloc_encrypted_message_new (struct tgl_state *TLS, struct tl_ds_encrypted_message *DS_EM) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_EM->random_id)); + + if (!M) { + M = talloc0 (sizeof (*M)); + M->id = DS_LVAL (DS_EM->random_id); + tglm_message_insert_tree (TLS, M); + TLS->messages_allocated ++; + assert (tgl_message_get (TLS, M->id) == M); + } + tglf_fetch_encrypted_message_new (TLS, M, DS_EM); + + if (M->flags & TGLMF_CREATED) { + tgl_peer_t *_E = tgl_peer_get (TLS, M->to_id); + assert (_E); + struct tgl_secret_chat *E = &_E->encr_chat; + if (M->action.type == tgl_message_action_request_key) { + if (E->exchange_state == tgl_sce_none || (E->exchange_state == tgl_sce_requested && E->exchange_id > M->action.exchange_id )) { + tgl_do_accept_exchange (TLS, E, M->action.exchange_id, M->action.g_a); + } else { + vlogprintf (E_WARNING, "Exchange: Incorrect state (received request, state = %d)\n", E->exchange_state); + } + } + if (M->action.type == tgl_message_action_accept_key) { + if (E->exchange_state == tgl_sce_requested && E->exchange_id == M->action.exchange_id) { + tgl_do_commit_exchange (TLS, E, M->action.g_a); + } else { + vlogprintf (E_WARNING, "Exchange: Incorrect state (received accept, state = %d)\n", E->exchange_state); + } + } + if (M->action.type == tgl_message_action_commit_key) { + if (E->exchange_state == tgl_sce_accepted && E->exchange_id == M->action.exchange_id) { + tgl_do_confirm_exchange (TLS, E, 1); + } else { + vlogprintf (E_WARNING, "Exchange: Incorrect state (received commit, state = %d)\n", E->exchange_state); + } + } + if (M->action.type == tgl_message_action_abort_key) { + if (E->exchange_state != tgl_sce_none && E->exchange_id == M->action.exchange_id) { + tgl_do_abort_exchange (TLS, E); + } else { + vlogprintf (E_WARNING, "Exchange: Incorrect state (received abort, state = %d)\n", E->exchange_state); + } + } + if (M->action.type == tgl_message_action_notify_layer) { + bl_do_encr_chat_new (TLS, tgl_get_peer_id (E->id), + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, &M->action.layer, NULL, NULL, NULL, NULL, + TGL_FLAGS_UNCHANGED + ); + } + if (M->action.type == tgl_message_action_set_message_ttl) { + //bl_do_encr_chat_set_ttl (TLS, E, M->action.ttl); + bl_do_encr_chat_new (TLS, tgl_get_peer_id (E->id), + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + &M->action.ttl, NULL, NULL, NULL, NULL, NULL, + TGL_FLAGS_UNCHANGED + ); + } + } + return M; +} + +struct tgl_message *tglf_fetch_alloc_message_short_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U) { + int id = DS_LVAL (DS_U->id); + struct tgl_message *M = tgl_message_get (TLS, id); + + if (!M) { + M = talloc0 (sizeof (*M)); + M->id = id; + tglm_message_insert_tree (TLS, M); + TLS->messages_allocated ++; + } + tglf_fetch_message_short_new (TLS, M, DS_U); + return M; +} + +struct tgl_message *tglf_fetch_alloc_message_short_chat_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U) { + int id = DS_LVAL (DS_U->id); + struct tgl_message *M = tgl_message_get (TLS, id); + + if (!M) { + M = talloc0 (sizeof (*M)); + M->id = id; + tglm_message_insert_tree (TLS, M); + TLS->messages_allocated ++; + } + tglf_fetch_message_short_chat_new (TLS, M, DS_U); + return M; +} + +struct tgl_chat *tglf_fetch_alloc_chat_new (struct tgl_state *TLS, struct tl_ds_chat *DS_C) { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_C->id))); + if (!U) { + TLS->chats_allocated ++; + U = talloc0 (sizeof (*U)); + U->id = TGL_MK_CHAT (DS_LVAL (DS_C->id)); + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = U; + } + tglf_fetch_chat_new (TLS, &U->chat, DS_C); + return &U->chat; +} + +struct tgl_chat *tglf_fetch_alloc_chat_full_new (struct tgl_state *TLS, struct tl_ds_messages_chat_full *DS_MCF) { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_CHAT (DS_LVAL (DS_MCF->full_chat->id))); + if (U) { + tglf_fetch_chat_full_new (TLS, &U->chat, DS_MCF); + return &U->chat; + } else { + TLS->chats_allocated ++; + U = talloc0 (sizeof (*U)); + U->id = TGL_MK_CHAT (DS_LVAL (DS_MCF->full_chat->id)); + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, U, lrand48 ()); + tglf_fetch_chat_full_new (TLS, &U->chat, DS_MCF); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = U; + return &U->chat; + } +} + +struct tgl_bot_info *tglf_fetch_alloc_bot_info (struct tgl_state *TLS, struct tl_ds_bot_info *DS_BI) { + if (!DS_BI || DS_BI->magic == CODE_bot_info_empty) { return NULL; } + struct tgl_bot_info *B = talloc (sizeof (*B)); + B->version = DS_LVAL (DS_BI->version); + B->share_text = DS_STR_DUP (DS_BI->share_text); + B->description = DS_STR_DUP (DS_BI->description); + + B->commands_num = DS_LVAL (DS_BI->commands->cnt); + B->commands = talloc (sizeof (struct tgl_bot_command) * B->commands_num); + int i; + for (i = 0; i < B->commands_num; i++) { + struct tl_ds_bot_command *BC = DS_BI->commands->data[i]; + B->commands[i].command = DS_STR_DUP (BC->command); + B->commands[i].description = DS_STR_DUP (BC->description); + } + return B; +} + +struct tgl_message_reply_markup *tglf_fetch_alloc_reply_markup (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_reply_markup *DS_RM) { + if (!DS_RM) { return NULL; } + + struct tgl_message_reply_markup *R = talloc0 (sizeof (*R)); + R->flags = DS_LVAL (DS_RM->flags); + R->refcnt = 1; + + R->rows = DS_RM->rows ? DS_LVAL (DS_RM->rows->cnt) : 0; + + int total = 0; + R->row_start = talloc ((R->rows + 1) * 4); + R->row_start[0] = 0; + int i; + for (i = 0; i < R->rows; i++) { + struct tl_ds_keyboard_button_row *DS_K = DS_RM->rows->data[i]; + total += DS_LVAL (DS_K->buttons->cnt); + R->row_start[i + 1] = total; + } + R->buttons = talloc (sizeof (void *) * total); + int r = 0; + for (i = 0; i < R->rows; i++) { + struct tl_ds_keyboard_button_row *DS_K = DS_RM->rows->data[i]; + int j; + for (j = 0; j < DS_LVAL (DS_K->buttons->cnt); j++) { + struct tl_ds_keyboard_button *DS_KB = DS_K->buttons->data[j]; + R->buttons[r ++] = DS_STR_DUP (DS_KB->text); + } + } + assert (r == total); + return R; +} +/* }}} */ + +void tglp_insert_encrypted_chat (struct tgl_state *TLS, tgl_peer_t *P) { + TLS->encr_chats_allocated ++; + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, P, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = P; +} + +void tglp_insert_user (struct tgl_state *TLS, tgl_peer_t *P) { + TLS->users_allocated ++; + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, P, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = P; +} + +void tglp_insert_chat (struct tgl_state *TLS, tgl_peer_t *P) { + TLS->chats_allocated ++; + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, P, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = P; +} + +void tgl_insert_empty_user (struct tgl_state *TLS, int uid) { + tgl_peer_id_t id = TGL_MK_USER (uid); + if (tgl_peer_get (TLS, id)) { return; } + tgl_peer_t *P = talloc0 (sizeof (*P)); + P->id = id; + tglp_insert_user (TLS, P); +} + +void tgl_insert_empty_chat (struct tgl_state *TLS, int cid) { + tgl_peer_id_t id = TGL_MK_CHAT (cid); + if (tgl_peer_get (TLS, id)) { return; } + tgl_peer_t *P = talloc0 (sizeof (*P)); + P->id = id; + tglp_insert_chat (TLS, P); +} + +/* {{{ Free */ + +void tgls_free_photo_size (struct tgl_state *TLS, struct tgl_photo_size *S) { + tfree_str (S->type); + if (S->data) { + tfree (S->data, S->size); + } +} + +void tgls_free_photo (struct tgl_state *TLS, struct tgl_photo *P) { + if (--P->refcnt) { + assert (P->refcnt > 0); + return; + } + if (P->caption) { tfree_str (P->caption); } + if (P->sizes) { + int i; + for (i = 0; i < P->sizes_num; i++) { + tgls_free_photo_size (TLS, &P->sizes[i]); + } + tfree (P->sizes, sizeof (struct tgl_photo_size) * P->sizes_num); + } + TLS->photo_tree = tree_delete_photo (TLS->photo_tree, P); + tfree (P, sizeof (*P)); +} + +void tgls_free_document (struct tgl_state *TLS, struct tgl_document *D) { + if (--D->refcnt) { + assert (D->refcnt); + return; + } + if (D->mime_type) { tfree_str (D->mime_type);} + if (D->caption) {tfree_str (D->caption);} + tgls_free_photo_size (TLS, &D->thumb); + + TLS->document_tree = tree_delete_document (TLS->document_tree, D); + tfree (D, sizeof (*D)); +} + +void tgls_free_webpage (struct tgl_state *TLS, struct tgl_webpage *W) { + if (--W->refcnt) { + assert (W->refcnt); + return; + } + if (W->url) { tfree_str (W->url); } + if (W->display_url) { tfree_str (W->display_url); } + if (W->title) { tfree_str (W->title); } + if (W->site_name) { tfree_str (W->site_name); } + if (W->type) { tfree_str (W->type); } + if (W->description) { tfree_str (W->description); } + if (W->photo) { tgls_free_photo (TLS, W->photo); } + if (W->embed_url) { tfree_str (W->embed_url); } + if (W->embed_type) { tfree_str (W->embed_type); } + if (W->author) { tfree_str (W->author); } + + TLS->webpage_tree = tree_delete_webpage (TLS->webpage_tree, W); + tfree (W, sizeof (*W)); +} + +void tgls_free_message_media (struct tgl_state *TLS, struct tgl_message_media *M) { + switch (M->type) { + case tgl_message_media_none: + case tgl_message_media_geo: + return; + case tgl_message_media_photo: + tgls_free_photo (TLS, M->photo); + M->photo = NULL; + return; + case tgl_message_media_contact: + tfree_str (M->phone); + tfree_str (M->first_name); + tfree_str (M->last_name); + return; + case tgl_message_media_document: + case tgl_message_media_video: + case tgl_message_media_audio: + tgls_free_document (TLS, M->document); + return; + case tgl_message_media_unsupported: + tfree (M->data, M->data_size); + return; + case tgl_message_media_document_encr: + tfree_secure (M->encr_document->key, 32); + tfree_secure (M->encr_document->iv, 32); + tfree (M->encr_document, sizeof (*M->encr_document)); + return; + case tgl_message_media_webpage: + tgls_free_webpage (TLS, M->webpage); + return; + case tgl_message_media_venue: + if (M->venue.title) { tfree_str (M->venue.title); } + if (M->venue.address) { tfree_str (M->venue.address); } + if (M->venue.provider) { tfree_str (M->venue.provider); } + if (M->venue.venue_id) { tfree_str (M->venue.venue_id); } + return; + default: + vlogprintf (E_ERROR, "type = 0x%08x\n", M->type); + assert (0); + } +} + +void tgls_free_message_action (struct tgl_state *TLS, struct tgl_message_action *M) { + switch (M->type) { + case tgl_message_action_none: + return; + case tgl_message_action_chat_create: + tfree_str (M->title); + tfree (M->users, M->user_num * 4); + return; + case tgl_message_action_chat_edit_title: + tfree_str (M->new_title); + return; + case tgl_message_action_chat_edit_photo: + tgls_free_photo (TLS, M->photo); + M->photo = NULL; + return; + case tgl_message_action_chat_delete_photo: + case tgl_message_action_chat_add_user: + case tgl_message_action_chat_add_user_by_link: + case tgl_message_action_chat_delete_user: + case tgl_message_action_geo_chat_create: + case tgl_message_action_geo_chat_checkin: + case tgl_message_action_set_message_ttl: + case tgl_message_action_read_messages: + case tgl_message_action_delete_messages: + case tgl_message_action_screenshot_messages: + case tgl_message_action_flush_history: + case tgl_message_action_typing: + case tgl_message_action_resend: + case tgl_message_action_notify_layer: + case tgl_message_action_commit_key: + case tgl_message_action_abort_key: + case tgl_message_action_noop: + return; + case tgl_message_action_request_key: + case tgl_message_action_accept_key: + tfree (M->g_a, 256); + return; +/* default: + vlogprintf (E_ERROR, "type = 0x%08x\n", M->type); + assert (0);*/ + } + vlogprintf (E_ERROR, "type = 0x%08x\n", M->type); + assert (0); +} + +void tgls_clear_message (struct tgl_state *TLS, struct tgl_message *M) { + if (!(M->flags & TGLMF_SERVICE)) { + if (M->message) { tfree (M->message, M->message_len + 1); } + tgls_free_message_media (TLS, &M->media); + } else { + tgls_free_message_action (TLS, &M->action); + } +} + +void tgls_free_reply_markup (struct tgl_state *TLS, struct tgl_message_reply_markup *R) { + if (!--R->refcnt) { + tfree (R->buttons, R->row_start[R->rows] * sizeof (void *)); + tfree (R->row_start, 4 * (R->rows + 1)); + tfree (R, sizeof (*R)); + } else { + assert (R->refcnt > 0); + } +} + +void tgls_free_message (struct tgl_state *TLS, struct tgl_message *M) { + tgls_clear_message (TLS, M); + if (M->reply_markup) { + tgls_free_reply_markup (TLS, M->reply_markup); + } + tfree (M, sizeof (*M)); +} + +void tgls_free_chat (struct tgl_state *TLS, struct tgl_chat *U) { + if (U->title) { tfree_str (U->title); } + if (U->print_title) { tfree_str (U->print_title); } + if (U->user_list) { + tfree (U->user_list, U->user_list_size * 12); + } + if (U->photo) { tgls_free_photo (TLS, U->photo); } + tfree (U, sizeof (*U)); +} + +void tgls_free_user (struct tgl_state *TLS, struct tgl_user *U) { + if (U->first_name) { tfree_str (U->first_name); } + if (U->last_name) { tfree_str (U->last_name); } + if (U->print_name) { tfree_str (U->print_name); } + if (U->phone) { tfree_str (U->phone); } + if (U->real_first_name) { tfree_str (U->real_first_name); } + if (U->real_last_name) { tfree_str (U->real_last_name); } + if (U->status.ev) { tgl_remove_status_expire (TLS, U); } + if (U->photo) { tgls_free_photo (TLS, U->photo); } + tfree (U, sizeof (*U)); +} + +void tgls_free_encr_chat (struct tgl_state *TLS, struct tgl_secret_chat *U) { + if (U->print_name) { tfree_str (U->print_name); } + if (U->g_key) { tfree (U->g_key, 256); } + tfree (U, sizeof (*U)); +} + +void tgls_free_peer (struct tgl_state *TLS, tgl_peer_t *P) { + if (tgl_get_peer_type (P->id) == TGL_PEER_USER) { + tgls_free_user (TLS, (void *)P); + } else if (tgl_get_peer_type (P->id) == TGL_PEER_CHAT) { + tgls_free_chat (TLS, (void *)P); + } else if (tgl_get_peer_type (P->id) == TGL_PEER_ENCR_CHAT) { + tgls_free_encr_chat (TLS, (void *)P); + } else { + assert (0); + } +} + +void tgls_free_bot_info (struct tgl_state *TLS, struct tgl_bot_info *B) { + if (!B) { return; } + int i; + for (i = 0; i < B->commands_num; i++) { + tfree_str (B->commands[i].command); + tfree_str (B->commands[i].description); + } + tfree (B->commands, sizeof (struct tgl_bot_command) * B->commands_num); + tfree_str (B->share_text); + tfree_str (B->description); + tfree (B, sizeof (*B)); +} +/* }}} */ + +/* Messages {{{ */ + +void tglm_message_del_use (struct tgl_state *TLS, struct tgl_message *M) { + M->next_use->prev_use = M->prev_use; + M->prev_use->next_use = M->next_use; +} + +void tglm_message_add_use (struct tgl_state *TLS, struct tgl_message *M) { + M->next_use = TLS->message_list.next_use; + M->prev_use = &TLS->message_list; + M->next_use->prev_use = M; + M->prev_use->next_use = M; +} + +void tglm_message_add_peer (struct tgl_state *TLS, struct tgl_message *M) { + tgl_peer_id_t id; + if (!tgl_cmp_peer_id (M->to_id, TGL_MK_USER (TLS->our_id))) { + id = M->from_id; + } else { + id = M->to_id; + } + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (!P) { + P = talloc0 (sizeof (*P)); + P->id = id; + switch (tgl_get_peer_type (id)) { + case TGL_PEER_USER: + TLS->users_allocated ++; + break; + case TGL_PEER_CHAT: + TLS->chats_allocated ++; + break; + case TGL_PEER_GEO_CHAT: + TLS->geo_chats_allocated ++; + break; + case TGL_PEER_ENCR_CHAT: + TLS->encr_chats_allocated ++; + break; + } + TLS->peer_tree = tree_insert_peer (TLS->peer_tree, P, lrand48 ()); + increase_peer_size (TLS); + TLS->Peers[TLS->peer_num ++] = P; + } + if (!P->last) { + P->last = M; + M->prev = M->next = 0; + } else { + if (tgl_get_peer_type (P->id) != TGL_PEER_ENCR_CHAT) { + struct tgl_message *N = P->last; + struct tgl_message *NP = 0; + while (N && N->id > M->id) { + NP = N; + N = N->next; + } + if (N) { + assert (N->id < M->id); + } + M->next = N; + M->prev = NP; + if (N) { N->prev = M; } + if (NP) { NP->next = M; } + else { P->last = M; } + } else { + struct tgl_message *N = P->last; + struct tgl_message *NP = 0; + M->next = N; + M->prev = NP; + if (N) { N->prev = M; } + if (NP) { NP->next = M; } + else { P->last = M; } + } + } +} + +void tglm_message_del_peer (struct tgl_state *TLS, struct tgl_message *M) { + tgl_peer_id_t id; + if (!tgl_cmp_peer_id (M->to_id, TGL_MK_USER (TLS->our_id))) { + id = M->from_id; + } else { + id = M->to_id; + } + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (M->prev) { + M->prev->next = M->next; + } + if (M->next) { + M->next->prev = M->prev; + } + if (P && P->last == M) { + P->last = M->next; + } +} + +struct tgl_message *tglm_message_alloc (struct tgl_state *TLS, long long id) { + struct tgl_message *M = talloc0 (sizeof (*M)); + M->id = id; + tglm_message_insert_tree (TLS, M); + TLS->messages_allocated ++; + return M; +} + +void tglm_message_insert_tree (struct tgl_state *TLS, struct tgl_message *M) { + assert (M->id); + TLS->message_tree = tree_insert_message (TLS->message_tree, M, lrand48 ()); +} + +void tglm_message_remove_tree (struct tgl_state *TLS, struct tgl_message *M) { + assert (M->id); + TLS->message_tree = tree_delete_message (TLS->message_tree, M); +} + +void tglm_message_insert (struct tgl_state *TLS, struct tgl_message *M) { + tglm_message_add_use (TLS, M); + tglm_message_add_peer (TLS, M); +} + +void tglm_message_insert_unsent (struct tgl_state *TLS, struct tgl_message *M) { + TLS->message_unsent_tree = tree_insert_message (TLS->message_unsent_tree, M, lrand48 ()); +} + +void tglm_message_remove_unsent (struct tgl_state *TLS, struct tgl_message *M) { + TLS->message_unsent_tree = tree_delete_message (TLS->message_unsent_tree, M); +} + +static void __send_msg (struct tgl_message *M, void *_TLS) { + struct tgl_state *TLS = _TLS; + vlogprintf (E_NOTICE, "Resending message...\n"); + //print_message (M); + + if (M->media.type != tgl_message_media_none) { + assert (M->flags & TGLMF_ENCRYPTED); + bl_do_message_delete (TLS, M); + } else { + tgl_do_send_msg (TLS, M, 0, 0); + } +} + +void tglm_send_all_unsent (struct tgl_state *TLS) { + tree_act_ex_message (TLS->message_unsent_tree, __send_msg, TLS); +} +/* }}} */ + +struct tgl_photo *tgl_photo_get (struct tgl_state *TLS, long long id) { + struct tgl_photo P; + P.id = id; + return tree_lookup_photo (TLS->photo_tree, &P); +} + +void tgl_photo_insert (struct tgl_state *TLS, struct tgl_photo *P) { + TLS->photo_tree = tree_insert_photo (TLS->photo_tree, P, lrand48 ()); +} + +struct tgl_document *tgl_document_get (struct tgl_state *TLS, long long id) { + struct tgl_document P; + P.id = id; + return tree_lookup_document (TLS->document_tree, &P); +} + +void tgl_document_insert (struct tgl_state *TLS, struct tgl_document *P) { + TLS->document_tree = tree_insert_document (TLS->document_tree, P, lrand48 ()); +} + +struct tgl_webpage *tgl_webpage_get (struct tgl_state *TLS, long long id) { + struct tgl_webpage P; + P.id = id; + return tree_lookup_webpage (TLS->webpage_tree, &P); +} + +void tgl_webpage_insert (struct tgl_state *TLS, struct tgl_webpage *P) { + TLS->webpage_tree = tree_insert_webpage (TLS->webpage_tree, P, lrand48 ()); +} + +void tglp_peer_insert_name (struct tgl_state *TLS, tgl_peer_t *P) { + TLS->peer_by_name_tree = tree_insert_peer_by_name (TLS->peer_by_name_tree, P, lrand48 ()); +} + +void tglp_peer_delete_name (struct tgl_state *TLS, tgl_peer_t *P) { + TLS->peer_by_name_tree = tree_delete_peer_by_name (TLS->peer_by_name_tree, P); +} + +tgl_peer_t *tgl_peer_get (struct tgl_state *TLS, tgl_peer_id_t id) { + static tgl_peer_t U; + U.id = id; + return tree_lookup_peer (TLS->peer_tree, &U); +} + +struct tgl_message *tgl_message_get (struct tgl_state *TLS, long long id) { + struct tgl_message M; + M.id = id; + return tree_lookup_message (TLS->message_tree, &M); +} + +tgl_peer_t *tgl_peer_get_by_name (struct tgl_state *TLS, const char *s) { + static tgl_peer_t P; + P.print_name = (void *)s; + tgl_peer_t *R = tree_lookup_peer_by_name (TLS->peer_by_name_tree, &P); + return R; +} + +void tgl_peer_iterator_ex (struct tgl_state *TLS, void (*it)(tgl_peer_t *P, void *extra), void *extra) { + tree_act_ex_peer (TLS->peer_tree, it, extra); +} + +int tgl_complete_user_list (struct tgl_state *TLS, int index, const char *text, int len, char **R) { + index ++; + while (index < TLS->peer_num && (!TLS->Peers[index]->print_name || strncmp (TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type (TLS->Peers[index]->id) != TGL_PEER_USER)) { + index ++; + } + if (index < TLS->peer_num) { + *R = strdup (TLS->Peers[index]->print_name); + assert (*R); + return index; + } else { + return -1; + } +} + +int tgl_complete_chat_list (struct tgl_state *TLS, int index, const char *text, int len, char **R) { + index ++; + while (index < TLS->peer_num && (!TLS->Peers[index]->print_name || strncmp (TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type (TLS->Peers[index]->id) != TGL_PEER_CHAT)) { + index ++; + } + if (index < TLS->peer_num) { + *R = strdup (TLS->Peers[index]->print_name); + assert (*R); + return index; + } else { + return -1; + } +} + +int tgl_complete_encr_chat_list (struct tgl_state *TLS, int index, const char *text, int len, char **R) { + index ++; + while (index < TLS->peer_num && (!TLS->Peers[index]->print_name || strncmp (TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type (TLS->Peers[index]->id) != TGL_PEER_ENCR_CHAT)) { + index ++; + } + if (index < TLS->peer_num) { + *R = strdup (TLS->Peers[index]->print_name); + assert (*R); + return index; + } else { + return -1; + } +} + +int tgl_complete_peer_list (struct tgl_state *TLS, int index, const char *text, int len, char **R) { + index ++; + while (index < TLS->peer_num && (!TLS->Peers[index]->print_name || strncmp (TLS->Peers[index]->print_name, text, len))) { + index ++; + } + if (index < TLS->peer_num) { + *R = strdup (TLS->Peers[index]->print_name); + assert (*R); + return index; + } else { + return -1; + } +} + +int tgl_secret_chat_for_user (struct tgl_state *TLS, tgl_peer_id_t user_id) { + int index = 0; + while (index < TLS->peer_num && (tgl_get_peer_type (TLS->Peers[index]->id) != TGL_PEER_ENCR_CHAT || TLS->Peers[index]->encr_chat.user_id != tgl_get_peer_id (user_id) || TLS->Peers[index]->encr_chat.state != sc_ok)) { + index ++; + } + if (index < TLS->peer_num) { + return tgl_get_peer_id (TLS->Peers[index]->encr_chat.id); + } else { + return -1; + } +} + +void tgls_free_peer_gw (tgl_peer_t *P, void *TLS) { + tgls_free_peer (TLS, P); +} + +void tgls_free_message_gw (struct tgl_message *M, void *TLS) { + tgls_free_message (TLS, M); +} + +void tgl_free_all (struct tgl_state *TLS) { + tree_act_ex_peer (TLS->peer_tree, tgls_free_peer_gw, TLS); + TLS->peer_tree = tree_clear_peer (TLS->peer_tree); + TLS->peer_by_name_tree = tree_clear_peer_by_name (TLS->peer_by_name_tree); + tree_act_ex_message (TLS->message_tree, tgls_free_message_gw, TLS); + TLS->message_tree = tree_clear_message (TLS->message_tree); + tree_act_ex_message (TLS->message_unsent_tree, tgls_free_message_gw, TLS); + TLS->message_unsent_tree = tree_clear_message (TLS->message_unsent_tree); + tglq_query_free_all (TLS); + + if (TLS->encr_prime) { tfree (TLS->encr_prime, 256); } + + + if (TLS->binlog_name) { tfree_str (TLS->binlog_name); } + if (TLS->auth_file) { tfree_str (TLS->auth_file); } + if (TLS->downloads_directory) { tfree_str (TLS->downloads_directory); } + + int i; + for (i = 0; i < TLS->rsa_key_num; i++) { + tfree_str (TLS->rsa_key_list[i]); + } + + for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i]) { + tgls_free_dc (TLS, TLS->DC_list[i]); + } + BN_CTX_free (TLS->BN_ctx); + tgls_free_pubkey (TLS); + + if (TLS->ev_login) { TLS->timer_methods->free (TLS->ev_login); } + if (TLS->online_updates_timer) { TLS->timer_methods->free (TLS->online_updates_timer); } +} + +int tgl_print_stat (struct tgl_state *TLS, char *s, int len) { + return tsnprintf (s, len, + "users_allocated\t%d\n" + "chats_allocated\t%d\n" + "encr_chats_allocated\t%d\n" + "peer_num\t%d\n" + "messages_allocated\t%d\n", + TLS->users_allocated, + TLS->chats_allocated, + TLS->encr_chats_allocated, + TLS->peer_num, + TLS->messages_allocated + ); +} + +void tglf_fetch_int_array (int *dst, struct tl_ds_vector *src, int len) { + int i; + assert (len <= *src->f1); + for (i = 0; i < len; i++) { + dst[i] = *(int *)src->f2[i]; + } +} + +void tglf_fetch_int_tuple (int *dst, int **src, int len) { + int i; + for (i = 0; i < len; i++) { + dst[i] = *src[i]; + } +} + + +void tgls_messages_mark_read (struct tgl_state *TLS, struct tgl_message *M, int out, int seq) { + while (M && M->id > seq) { + if ((M->flags & TGLMF_OUT) == out) { + if (!(M->flags & TGLMF_UNREAD)) { + return; + } + } + M = M->next; + } + while (M) { + if ((M->flags & TGLMF_OUT) == out) { + if (M->flags & TGLMF_UNREAD) { + M->flags &= ~TGLMF_UNREAD; + TLS->callback.marked_read (TLS, 1, &M); + } else { + return; + } + } + M = M->next; + } +} + +void tgls_insert_random2local (struct tgl_state *TLS, long long random_id, int local_id) { + struct random2local *X = talloc (sizeof (*X)); + X->random_id = random_id; + X->local_id = local_id; + + struct random2local *R = tree_lookup_random_id (TLS->random_id_tree, X); + assert (!R); + + TLS->random_id_tree = tree_insert_random_id (TLS->random_id_tree, X, lrand48 ()); +} + +int tgls_get_local_by_random (struct tgl_state *TLS, long long random_id) { + struct random2local X; + X.random_id = random_id; + struct random2local *Y = tree_lookup_random_id (TLS->random_id_tree, &X); + if (Y) { + TLS->random_id_tree = tree_delete_random_id (TLS->random_id_tree, Y); + int y = Y->local_id; + tfree (Y, sizeof (*Y)); + return y; + } else { + return 0; + } +} diff --git a/libs/tgl/src/tg-mime-types.c b/libs/tgl/src/tg-mime-types.c new file mode 100644 index 0000000000..578d8da780 --- /dev/null +++ b/libs/tgl/src/tg-mime-types.c @@ -0,0 +1,112 @@ +#include +#include +#define MAX_MIME_TYPES_NUM 10000 + +#include "mime-types.c" + +static int mime_initialized; +static int mime_type_number; +static char *mime_type_names[MAX_MIME_TYPES_NUM]; +static char *mime_type_extensions[MAX_MIME_TYPES_NUM]; + +static void mime_init (void) { + char *start = (char *)mime_types; + char *end = start + mime_types_len; + mime_initialized = 1; + char *c = start; + while (c < end) { + if (*c == '#') { + while (c < end && *c != '\n') { + c ++; + } + if (c < end) { + c ++; + } + } else { + while (*c <= ' ' && *c != '\n' && c < end) { + c ++; + } + assert (*c > ' ' && *c != '\n' && c < end); + char *name = c; + while (*c > ' ' && *c != '\n' && c < end) { + c ++; + } + assert (*c <= ' ' && *c != '\n' && c < end); + *c = 0; + c ++; + while (1) { + while (*c <= ' ' && *c != '\n' && c < end) { + c ++; + } + if (*c == '\n' || c == end) { + if (*c == '\n') { c ++; } + break; + } + char *ext = c; + while (*c > ' ' && *c != '\n' && c < end) { + c ++; + } + assert (c != end); + int br = (*c == '\n'); + *c = 0; + c ++; + assert (mime_type_number < MAX_MIME_TYPES_NUM); + mime_type_names[mime_type_number] = name; + mime_type_extensions[mime_type_number] = ext; + mime_type_number ++; + if (br) { break; } + } + } + } +} + +char *tg_extension_by_mime (const char *mime_type) { + if (!mime_initialized) { + mime_init (); + } + int i; + for (i = 0; i < mime_type_number; i++) { + if (!strcmp (mime_type_names[i], mime_type)) { + return mime_type_extensions[i]; + } + } + return NULL; +} + +char *tg_mime_by_filename (const char *filename) { + int l = strlen (filename); + const char *p = filename - 1 + l; + while (p >= filename && *p != '.') { + p --; + } + p ++; + + if (!mime_initialized) { + mime_init (); + } + + static char *def = "application/octet-stream"; + if (strlen (p) > 10) { + return def; + } + static char s[11]; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + strcpy_s(s, 11, p); +#else + strcpy (s, p); +#endif + char *q = s; + while (*q) { + if (*q >= 'A' && *p <= 'Z') { + *q = *q + 'z' - 'Z'; + } + q ++; + } + int i; + for (i = 0; i < mime_type_number; i++) { + if (!strcmp (mime_type_extensions[i], s)) { + return mime_type_names[i]; + } + } + return def; +} diff --git a/libs/tgl/src/tg-mime-types.h b/libs/tgl/src/tg-mime-types.h new file mode 100644 index 0000000000..3a3539e56a --- /dev/null +++ b/libs/tgl/src/tg-mime-types.h @@ -0,0 +1,3 @@ +char *tg_mime_by_filename (const char *filename); +char *tg_extension_by_mime (const char *mime_type); + diff --git a/libs/tgl/src/tgl-binlog.h b/libs/tgl/src/tgl-binlog.h new file mode 100644 index 0000000000..fdd838f70c --- /dev/null +++ b/libs/tgl/src/tgl-binlog.h @@ -0,0 +1,73 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#ifndef __BINLOG_H__ +#define __BINLOG_H__ + +//#include "structures.h" +#include "tgl.h" +#include "auto/auto-types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void bl_do_dc_option (struct tgl_state *TLS, int id, const char *name, int l1, const char *ip, int l2, int port); +void bl_do_dc_option_new (struct tgl_state *TLS, int flags, int id, const char *name, int l1, const char *ip, int l2, int port); +void bl_do_set_working_dc (struct tgl_state *TLS, int num); +void bl_do_dc_signed (struct tgl_state *TLS, int id); +void bl_do_set_our_id (struct tgl_state *TLS, int id); +void bl_do_set_dh_params (struct tgl_state *TLS, int root, unsigned char prime[], int version); + +void bl_do_set_pts (struct tgl_state *TLS, int pts); +void bl_do_set_qts (struct tgl_state *TLS, int qts); +void bl_do_set_date (struct tgl_state *TLS, int date); +void bl_do_set_seq (struct tgl_state *TLS, int seq); + +void bl_do_set_msg_id (struct tgl_state *TLS, struct tgl_message *M, int id); + +void bl_do_user_delete (struct tgl_state *TLS, struct tgl_user *U); +void bl_do_encr_chat_delete (struct tgl_state *TLS, struct tgl_secret_chat *U); + +void bl_do_chat_add_user (struct tgl_state *TLS, struct tgl_chat *C, int version, int user, int inviter, int date); +void bl_do_chat_del_user (struct tgl_state *TLS, struct tgl_chat *C, int version, int user); + +void bl_do_create_message_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *fwd_from_id, int *fwd_date, int *date, const char *message, int message_len, struct tl_ds_message_media *media, struct tl_ds_message_action *action, int *reply_id, struct tl_ds_reply_markup *reply_markup, int flags); + +void bl_do_create_message_encr_new (struct tgl_state *TLS, long long id, int *from_id, int *to_type, int *to_id, int *date, const char *message, int message_len, struct tl_ds_decrypted_message_media *media, struct tl_ds_decrypted_message_action *action, struct tl_ds_encrypted_file *file, int flags); +void bl_do_message_delete (struct tgl_state *TLS, struct tgl_message *M); + +void bl_do_encr_chat_exchange_new (struct tgl_state *TLS, struct tgl_secret_chat *E, long long *exchange_id, const void *key, int *state); + +void bl_do_msg_update (struct tgl_state *TLS, long long id); +void bl_do_reset_authorization (struct tgl_state *TLS); + +void bl_do_user_new (struct tgl_state *TLS, int id, long long *access_hash, const char *first_name, int first_name_len, const char *last_name, int last_name_len, const char *phone, int phone_len, const char *username, int username_len, struct tl_ds_photo *photo, const char *real_first_name, int real_first_name_len, const char *real_last_name, int real_last_name_len, struct tl_ds_user_profile_photo *profile_photo, int *last_read_in, int *last_read_out, struct tl_ds_bot_info *bot_info, int flags); + +void bl_do_set_auth_key (struct tgl_state *TLS, int num, unsigned char *buf); + +void bl_do_chat_new (struct tgl_state *TLS, int id, const char *title, int title_len, int *user_num, int *date, int *version, struct tl_ds_vector *participants, struct tl_ds_chat_photo *chat_photo, struct tl_ds_photo *photo, int *admin, int *last_read_in, int *last_read_out, int flags); + +void bl_do_encr_chat_new (struct tgl_state *TLS, int id, long long *access_hash, int *date, int *admin, int *user_id, void *key, void *g_key, void *first_key_id, int *state, int *ttl, int *layer, int *in_seq_no, int *last_in_seq_no, int *out_seq_no, long long *key_fingerprint, int flags); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libs/tgl/src/tgl-fetch.h b/libs/tgl/src/tgl-fetch.h new file mode 100644 index 0000000000..37b2ac5d1d --- /dev/null +++ b/libs/tgl/src/tgl-fetch.h @@ -0,0 +1,59 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ +#ifndef __TGL_FETCH_H__ +#define __TGL_FETCH_H__ +#include "tgl.h" +#include "auto/auto-types.h" + +struct tgl_user *tglf_fetch_alloc_user_new (struct tgl_state *TLS, struct tl_ds_user *DS_U); +struct tgl_user *tglf_fetch_alloc_user_full_new (struct tgl_state *TLS, struct tl_ds_user_full *DS_U); +struct tgl_chat *tglf_fetch_alloc_chat_new (struct tgl_state *TLS, struct tl_ds_chat *DS_C); +struct tgl_chat *tglf_fetch_alloc_chat_full_new (struct tgl_state *TLS, struct tl_ds_messages_chat_full *DS_MCF); +struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat_new (struct tgl_state *TLS, struct tl_ds_encrypted_chat *DS_EC); +struct tgl_message *tglf_fetch_alloc_message_new (struct tgl_state *TLS, struct tl_ds_message *DS_M); +struct tgl_message *tglf_fetch_alloc_message_short (struct tgl_state *TLS); +struct tgl_message *tglf_fetch_alloc_message_short_chat (struct tgl_state *TLS); +struct tgl_message *tglf_fetch_alloc_encrypted_message_new (struct tgl_state *TLS, struct tl_ds_encrypted_message *DS_EM); +tgl_peer_id_t tglf_fetch_peer_id_new (struct tgl_state *TLS, struct tl_ds_peer *DS_P); +long long tglf_fetch_user_photo_new (struct tgl_state *TLS, struct tgl_user *U, struct tl_ds_user_profile_photo *DS_UPP); + +void tglf_fetch_message_media_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_message_media *DS_MM); +void tglf_fetch_message_action_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_message_action *DS_MA); +void tglf_fetch_chat_full (struct tgl_state *TLS, struct tgl_chat *C); + +void tglf_fetch_encrypted_message_file_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_encrypted_file *DS_EF); +void tglf_fetch_message_media_encrypted_new (struct tgl_state *TLS, struct tgl_message_media *M, struct tl_ds_decrypted_message_media *DS_DMM); +void tglf_fetch_message_action_encrypted_new (struct tgl_state *TLS, struct tgl_message_action *M, struct tl_ds_decrypted_message_action *DS_DMA); +int tglf_fetch_user_status_new (struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U, struct tl_ds_user_status *DS_US); +enum tgl_typing_status tglf_fetch_typing_new (struct tl_ds_send_message_action *DS_SMA); +void tglf_fetch_chat_participants_new (struct tgl_state *TLS, struct tgl_chat *C, struct tl_ds_chat_participants *DS_CP); +void tglf_fetch_int_array (int *dst, struct tl_ds_vector *src, int len); +void tglf_fetch_int_tuple (int *dst, int **src, int len); +int tglf_fetch_file_location_new (struct tgl_state *TLS, struct tgl_file_location *loc, struct tl_ds_file_location *DS_FL); + +void tglf_fetch_message_short_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U); +void tglf_fetch_message_short_chat_new (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_updates *DS_U); + +struct tgl_message *tglf_fetch_alloc_message_short_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U); +struct tgl_message *tglf_fetch_alloc_message_short_chat_new (struct tgl_state *TLS, struct tl_ds_updates *DS_U); +struct tgl_photo *tglf_fetch_alloc_photo_new (struct tgl_state *TLS, struct tl_ds_photo *DS_P); +struct tgl_bot_info *tglf_fetch_alloc_bot_info (struct tgl_state *TLS, struct tl_ds_bot_info *DS_BI); +struct tgl_message_reply_markup *tglf_fetch_alloc_reply_markup (struct tgl_state *TLS, struct tgl_message *M, struct tl_ds_reply_markup *DS_RM); +#endif diff --git a/libs/tgl/src/tgl-inner.h b/libs/tgl/src/tgl-inner.h new file mode 100644 index 0000000000..2ffa932762 --- /dev/null +++ b/libs/tgl/src/tgl-inner.h @@ -0,0 +1,33 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ + +#ifndef __TGL_INNER_H__ +#define __TGL_INNER_H__ + +#ifndef vlogprintf +#define vlogprintf(verbosity_level,...) \ + do { \ + if (TLS->verbosity >= verbosity_level) { \ + TLS->callback.logprintf (__VA_ARGS__); \ + } \ + } while (0) +#endif + +#endif diff --git a/libs/tgl/src/tgl-layout.h b/libs/tgl/src/tgl-layout.h new file mode 100644 index 0000000000..fee5b2c3d6 --- /dev/null +++ b/libs/tgl/src/tgl-layout.h @@ -0,0 +1,539 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ +#ifndef __TGL_LAYOUT_H__ +#define __TGL_LAYOUT_H__ + +#define TGLDF_IMAGE 1 +#define TGLDF_STICKER 2 +#define TGLDF_ANIMATED 4 +#define TGLDF_AUDIO 8 +#define TGLDF_VIDEO 16 + +#define TGLMF_UNREAD 1 +#define TGLMF_OUT 2 +#define TGLMF_DISABLE_PREVIEW 4 +#define TGLMF_MENTION 16 +#define TGLMF_CREATED (1 << 8) +#define TGLMF_PENDING (1 << 9) +#define TGLMF_DELETED (1 << 10) +#define TGLMF_ENCRYPTED (1 << 11) +#define TGLMF_EMPTY (1 << 12) +#define TGLMF_SERVICE (1 << 13) +#define TGLMF_SESSION_OUTBOUND (1 << 14) + +#define TGLMF_CREATE 0x10000 + +#define TGLPF_CREATED (1 << 8) +#define TGLPF_CREATE (1 << 16) +#define TGLPF_HAS_PHOTO (1 << 11) +#define TGLPF_DELETED (1 << 10) + +#define TGLUF_CONTACT 1 +#define TGLUF_MUTUAL_CONTACT 2 +#define TGLUF_BLOCKED 4 +#define TGLUF_SELF 8 +#define TGLUF_CREATED TGLPF_CREATED +#define TGLUF_DELETED TGLPF_DELETED +#define TGLUF_HAS_PHOTO TGLPF_HAS_PHOTO +#define TGLUF_CREATE TGLPF_CREATE +#define TGLUF_BOT (1 << 12) + +#define TGLCF_CREATED TGLPF_CREATED +#define TGLCF_CREATE TGLPF_CREATE +#define TGLCF_HAS_PHOTO TGLPF_HAS_PHOTO + +#define TGLECF_CREATED TGLPF_CREATED +#define TGLECF_CREATE TGLPF_CREATE +#define TGLECF_HAS_PHOTO TGLPF_HAS_PHOTO +#define TGLECF_DELETED TGLPF_DELETED + +#define TGL_FLAGS_UNCHANGED 0xffff + +#define TGLDCF_AUTHORIZED 1 +#define TGLDCF_LOGGED_IN 8 + +#pragma pack(push,4) + +typedef struct { int type; int id; } tgl_peer_id_t; + +enum tgl_dc_state { + st_init, + st_reqpq_sent, + st_reqdh_sent, + st_client_dh_sent, + st_init_temp, + st_reqpq_sent_temp, + st_reqdh_sent_temp, + st_client_dh_sent_temp, + st_authorized, + st_error +}; + +#define MAX_DC_SESSIONS 3 + +struct tgl_session { + struct tgl_dc *dc; + long long session_id; + long long last_msg_id; + int seq_no; + int received_messages; + struct connection *c; + struct tree_long *ack_tree; + struct tgl_timer *ev; +}; + +struct tgl_dc_option { + struct tgl_dc_option *next; + char *ip; + int port; +}; + +struct tgl_dc { + int id; + //int port; + int flags; + int rsa_key_idx; + enum tgl_dc_state state; + //char *ip; + //char *user; + struct tgl_session *sessions[MAX_DC_SESSIONS]; + char auth_key[256]; + char temp_auth_key[256]; + char nonce[256]; + char new_nonce[256]; + char server_nonce[256]; + long long auth_key_id; + long long temp_auth_key_id; + long long temp_auth_key_bind_query_id; + + long long server_salt; + struct tgl_timer *ev; + + int server_time_delta; + double server_time_udelta; + + // ipv4, ipv6, ipv4_media, ipv6_media + struct tgl_dc_option *options[4]; +}; + +enum tgl_message_media_type { + tgl_message_media_none, + tgl_message_media_photo, + tgl_message_media_document, + tgl_message_media_geo, + tgl_message_media_contact, + tgl_message_media_unsupported, + //tgl_message_media_photo_encr, + //tgl_message_media_video_encr, + //tgl_message_media_audio_encr, + tgl_message_media_document_encr, + tgl_message_media_webpage, + tgl_message_media_venue, + tgl_message_media_video, + tgl_message_media_audio +}; + +enum tgl_message_action_type { + tgl_message_action_none, + tgl_message_action_geo_chat_create, + tgl_message_action_geo_chat_checkin, + tgl_message_action_chat_create, + tgl_message_action_chat_edit_title, + tgl_message_action_chat_edit_photo, + tgl_message_action_chat_delete_photo, + tgl_message_action_chat_add_user, + tgl_message_action_chat_add_user_by_link, + tgl_message_action_chat_delete_user, + tgl_message_action_set_message_ttl, + tgl_message_action_read_messages, + tgl_message_action_delete_messages, + tgl_message_action_screenshot_messages, + tgl_message_action_flush_history, + tgl_message_action_resend, + tgl_message_action_notify_layer, + tgl_message_action_typing, + tgl_message_action_noop, + tgl_message_action_commit_key, + tgl_message_action_abort_key, + tgl_message_action_request_key, + tgl_message_action_accept_key +}; + +enum tgl_typing_status { + tgl_typing_none, + tgl_typing_typing, + tgl_typing_cancel, + tgl_typing_record_video, + tgl_typing_upload_video, + tgl_typing_record_audio, + tgl_typing_upload_audio, + tgl_typing_upload_photo, + tgl_typing_upload_document, + tgl_typing_geo, + tgl_typing_choose_contact +}; + +struct tgl_file_location { + int dc; + long long volume; + int local_id; + long long secret; +}; + +struct tgl_photo_size { + char *type; + struct tgl_file_location loc; + int w; + int h; + int size; + char *data; +}; + +struct tgl_geo { + double longitude; + double latitude; +}; + +struct tgl_photo { + long long id; + long long access_hash; + int refcnt; + int user_id; + int date; + char *caption; + struct tgl_geo geo; + int sizes_num; + struct tgl_photo_size *sizes; +}; + +struct tgl_encr_document { + long long id; + long long access_hash; + int refcnt; + + int dc_id; + int size; + int key_fingerprint; + int flags; + + unsigned char *key; + unsigned char *iv; + int w; + int h; + char *caption; + char *mime_type; + int duration; +}; + + +struct tgl_user_status { + int online; + int when; + struct tgl_timer *ev; +}; + +struct tgl_bot_command { + char *command; + char *description; +}; + +struct tgl_bot_info { + int version; + char *share_text; + char *description; + int commands_num; + struct tgl_bot_command *commands; +}; + +struct tgl_user { + tgl_peer_id_t id; + int flags; + struct tgl_message *last; + char *print_name; + int structure_version; + struct tgl_file_location photo_big; + struct tgl_file_location photo_small; + int last_read_in; + int last_read_out; + long long photo_id; + struct tgl_photo *photo; + char *first_name; + char *last_name; + char *phone; + long long access_hash; + struct tgl_user_status status; + int blocked; + char *real_first_name; + char *real_last_name; + char *username; + + struct tgl_bot_info *bot_info; +}; + +struct tgl_chat_user { + int user_id; + int inviter_id; + int date; +}; + +struct tgl_chat { + tgl_peer_id_t id; + int flags; + struct tgl_message *last; + char *print_title; + int structure_version; + struct tgl_file_location photo_big; + struct tgl_file_location photo_small; + int last_read_in; + int last_read_out; + struct tgl_photo *photo; + char *title; + int users_num; + int user_list_size; + int user_list_version; + struct tgl_chat_user *user_list; + int date; + int version; + int admin_id; +}; + +enum tgl_secret_chat_state { + sc_none, + sc_waiting, + sc_request, + sc_ok, + sc_deleted +}; + +enum tgl_secret_chat_exchange_state { + tgl_sce_none, + tgl_sce_requested, + tgl_sce_accepted, + tgl_sce_committed, + tgl_sce_confirmed, + tgl_sce_aborted +}; + +struct tgl_secret_chat { + tgl_peer_id_t id; + int flags; + struct tgl_message *last; + char *print_name; + int structure_version; + struct tgl_file_location photo_big; + struct tgl_file_location photo_small; + struct tgl_photo *photo; + int user_id; + int admin_id; + int date; + int ttl; + int layer; + int in_seq_no; + int out_seq_no; + int last_in_seq_no; + long long access_hash; + unsigned char *g_key; + + enum tgl_secret_chat_state state; + int key[64]; + long long key_fingerprint; + unsigned char first_key_sha[20]; + + long long exchange_id; + enum tgl_secret_chat_exchange_state exchange_state; + int exchange_key[64]; + long long exchange_key_fingerprint; +}; + +typedef union tgl_peer { + struct { + tgl_peer_id_t id; + int flags; + struct tgl_message *last; + char *print_name; + int structure_version; + struct tgl_file_location photo_big; + struct tgl_file_location photo_small; + struct tgl_photo *photo; + }; + struct tgl_user user; + struct tgl_chat chat; + struct tgl_secret_chat encr_chat; +} tgl_peer_t; +/* +struct tgl_video { + long long id; + long long access_hash; + int user_id; + int date; + int size; + int dc_id; + struct tgl_photo_size thumb; + char *caption; + int duration; + int w; + int h; + char *mime_type; +}; + +struct tgl_audio { + long long id; + long long access_hash; + int user_id; + int date; + int size; + int dc_id; + int duration; + char *mime_type; +};*/ + +struct tgl_document { + long long id; + long long access_hash; + int refcnt; + int user_id; + int date; + int size; + int dc_id; + struct tgl_photo_size thumb; + char *caption; + char *mime_type; + + int w; + int h; + int flags; + int duration; +}; + +struct tgl_message_action { + enum tgl_message_action_type type; + union { + struct { + char *title; + int user_num; + int *users; + }; + char *new_title; + struct tgl_photo *photo; + int user; + int ttl; + int layer; + int read_cnt; + int delete_cnt; + int screenshot_cnt; + enum tgl_typing_status typing; + struct { + int start_seq_no; + int end_seq_no; + }; + struct { + unsigned char *g_a; + long long exchange_id; + long long key_fingerprint; + }; + }; +}; + + +struct tgl_webpage { + long long id; + int refcnt; + char *url; + char *display_url; + char *type; + char *site_name; + char *title; + char *description; + struct tgl_photo *photo; + char *embed_url; + char *embed_type; + int embed_width; + int embed_height; + int duration; + char *author; +}; + +struct tgl_message_media { + enum tgl_message_media_type type; + union { + struct { + union { + struct tgl_photo *photo; + struct tgl_document *document; + }; + char *caption; + }; + + struct tgl_encr_document *encr_document; + struct tgl_webpage *webpage; + + struct tgl_geo geo; + struct { + char *phone; + char *first_name; + char *last_name; + int user_id; + }; + + struct { + void *data; + int data_size; + }; + struct { + struct tgl_geo geo; + char *title; + char *address; + char *provider; + char *venue_id; + } venue; + }; +}; + +struct tgl_message_reply_markup { + int refcnt; + int flags; + int rows; + int *row_start; + char **buttons; +}; + +struct tgl_message { + struct tgl_message *next_use, *prev_use; + struct tgl_message *next, *prev; + long long id; + int flags; + tgl_peer_id_t fwd_from_id; + int fwd_date; + int reply_id; + tgl_peer_id_t from_id; + tgl_peer_id_t to_id; + int date; + struct tgl_message_reply_markup *reply_markup; + union { + struct tgl_message_action action; + struct { + char *message; + int message_len; + struct tgl_message_media media; + }; + }; +}; +#pragma pack(pop) +#endif diff --git a/libs/tgl/src/tgl-methods-in.h b/libs/tgl/src/tgl-methods-in.h new file mode 100644 index 0000000000..0d149db7d6 --- /dev/null +++ b/libs/tgl/src/tgl-methods-in.h @@ -0,0 +1,50 @@ +// normally you should not use these methods +// use them with caution + + +#ifndef __TGL_METHODS_IN_H__ +#define __TGL_METHODS_IN_H__ + +/* {{{ AUTHORIZATION METHODS. NORMALLY YOU DON'T NEED THEM */ + +// send query to updated DCs' ips +// automatically renews data on update +void tgl_do_help_get_config (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// requests server to send code to specified phone number +// if user is logged in elsewhere message will first appear as telegram message +// and SMS will be sent some time after +void tgl_do_send_code (struct tgl_state *TLS, const char *phone, int phone_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int registered, const char *hash), void *callback_extra); + +// request server to send code via phone call +void tgl_do_phone_call (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// sends code from SMS to server. This step should end authorization, unless user have password +int tgl_do_send_code_result (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra); + + +// sends code from SMS, username and lastname to server. This step should end new user registration +int tgl_do_send_code_result_auth (struct tgl_state *TLS, const char *phone, int phone_len, const char *hash, int hash_len, const char *code, int code_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra); + +/* }}} */ + +void tgl_do_send_msg (struct tgl_state *TLS, struct tgl_message *M, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +void tgl_do_check_password (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra); + +void tgl_do_export_auth (struct tgl_state *TLS, int num, void (*callback) (struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +void tgl_do_create_secret_chat (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra); + +void tgl_do_get_difference (struct tgl_state *TLS, int sync_from_start, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +void tgl_do_lookup_state (struct tgl_state *TLS); + +void tgl_do_help_get_config_dc (struct tgl_state *TLS, struct tgl_dc *D, void (*callback)(struct tgl_state *TLS, void *, int), void *callback_extra); + +void tgl_do_request_exchange (struct tgl_state *TLS, struct tgl_secret_chat *E); + +void tgl_do_create_keys_end (struct tgl_state *TLS, struct tgl_secret_chat *U); + +void tgl_do_send_encr_chat_layer (struct tgl_state *TLS, struct tgl_secret_chat *E); +#endif diff --git a/libs/tgl/src/tgl-net-inner.h b/libs/tgl/src/tgl-net-inner.h new file mode 100644 index 0000000000..53b9c10dfe --- /dev/null +++ b/libs/tgl/src/tgl-net-inner.h @@ -0,0 +1,93 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#ifndef __NET_H__ +#define __NET_H__ +#if !defined(WIN32) || !defined(_WIN32) +typedef int SOCKET +#ifndef SOCKET_ERROR +#define SOCKET_ERROR -1 +#endif +#endif + +struct connection_buffer { + unsigned char *start; + unsigned char *end; + unsigned char *rptr; + unsigned char *wptr; + struct connection_buffer *next; +}; + +enum conn_state { + conn_none, + conn_connecting, + conn_ready, + conn_failed, + conn_stopped +}; + +struct connection { + SOCKET fd; + char *ip; + int port; + int flags; + enum conn_state state; + int ipv6[4]; + struct connection_buffer *in_head; + struct connection_buffer *in_tail; + struct connection_buffer *out_head; + struct connection_buffer *out_tail; + int in_bytes; + int out_bytes; + int packet_num; + int out_packet_num; + int last_connect_time; + int in_fail_timer; + struct mtproto_methods *methods; + struct tgl_state *TLS; + struct tgl_session *session; + struct tgl_dc *dc; + void *extra; + struct event *ping_ev; + struct event *fail_ev; + struct event *read_ev; + struct event *write_ev; + double last_receive_time; +}; + +//extern struct connection *Connections[]; + +int tgln_write_out (struct connection *c, const void *data, int len); +void tgln_flush_out (struct connection *c); +int tgln_read_in (struct connection *c, void *data, int len); +int tgln_read_in_lookup (struct connection *c, void *data, int len); + +//void tgln_insert_msg_id (struct tgl_session *S, long long id); + +extern struct tgl_net_methods tgl_conn_methods; + +//void create_all_outbound_connections (void); + +//struct connection *create_connection (const char *host, int port, struct tgl_session *session, struct connection_methods *methods); +//struct tgl_dc *tgln_alloc_dc (int id, char *ip, int port); +//void tgln_dc_create_session (struct tgl_dc *DC, struct mtproto_methods *methods); +struct connection *tgln_create_connection (struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods); + +#define GET_DC(c) (c->session->dc) +#endif diff --git a/libs/tgl/src/tgl-net.c b/libs/tgl/src/tgl-net.c new file mode 100644 index 0000000000..7439ee145d --- /dev/null +++ b/libs/tgl/src/tgl-net.c @@ -0,0 +1,674 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#include +#include +#include +#include +#include +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#else +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include + +#ifdef EVENT_V2 +#include +#else +#include +#include "event-old.h" +#endif +#include + +#include "tgl-net-inner.h" +#include "tgl-net.h" +#include "tgl.h" +#include "tgl-inner.h" +//#include "mtproto-client.h" +//#include "mtproto-common.h" +#include "tree.h" +#include "tools.h" +#include "mtproto-client.h" + +#ifndef POLLRDHUP +#define POLLRDHUP 0 +#endif + +//double get_utime (int clock_id); + +//extern struct mtproto_methods auth_methods; + +static void fail_connection (struct connection *c); + +#define PING_TIMEOUT 10 + +static void start_ping_timer (struct connection *c); +static void ping_alarm (evutil_socket_t fd, short what, void *arg) { + struct connection *c = arg; + struct tgl_state *TLS = c->TLS; + vlogprintf (E_DEBUG + 2,"ping alarm\n"); + assert (c->state == conn_ready || c->state == conn_connecting); + if (tglt_get_double_time () - c->last_receive_time > 6 * PING_TIMEOUT) { + vlogprintf (E_WARNING, "fail connection: reason: ping timeout\n"); + c->state = conn_failed; + fail_connection (c); + } else if (tglt_get_double_time () - c->last_receive_time > 3 * PING_TIMEOUT && c->state == conn_ready) { + tgl_do_send_ping (c->TLS, c); + start_ping_timer (c); + } else { + start_ping_timer (c); + } +} + +static void stop_ping_timer (struct connection *c) { + event_del (c->ping_ev); +} + +static void start_ping_timer (struct connection *c) { + static struct timeval ptimeout = { PING_TIMEOUT, 0}; + event_add (c->ping_ev, &ptimeout); +} + +static void restart_connection (struct connection *c); + +static void fail_alarm (evutil_socket_t fd, short what, void *arg) { + struct connection *c = arg; + c->in_fail_timer = 0; + restart_connection (c); +} + +static void start_fail_timer (struct connection *c) { + if (c->in_fail_timer) { return; } + c->in_fail_timer = 1; + + static struct timeval ptimeout = { 10, 0}; + event_add (c->fail_ev, &ptimeout); +} + +static struct connection_buffer *new_connection_buffer (int size) { + struct connection_buffer *b = talloc0 (sizeof (*b)); + b->start = talloc (size); + b->end = b->start + size; + b->rptr = b->wptr = b->start; + return b; +} + +static void delete_connection_buffer (struct connection_buffer *b) { + tfree (b->start, b->end - b->start); + tfree (b, sizeof (*b)); +} + +int tgln_write_out (struct connection *c, const void *_data, int len) { + struct tgl_state *TLS = c->TLS; + vlogprintf (E_DEBUG, "write_out: %d bytes\n", len); + const unsigned char *data = _data; + if (!len) { return 0; } + assert (len > 0); + int x = 0; + if (!c->out_bytes) { + event_add (c->write_ev, 0); + } + if (!c->out_head) { + struct connection_buffer *b = new_connection_buffer (1 << 20); + c->out_head = c->out_tail = b; + } + while (len) { + if (c->out_tail->end - c->out_tail->wptr >= len) { + memcpy (c->out_tail->wptr, data, len); + c->out_tail->wptr += len; + c->out_bytes += len; + return x + len; + } else { + int y = c->out_tail->end - c->out_tail->wptr; + assert (y < len); + memcpy (c->out_tail->wptr, data, y); + x += y; + len -= y; + data += y; + struct connection_buffer *b = new_connection_buffer (1 << 20); + c->out_tail->next = b; + b->next = 0; + c->out_tail = b; + c->out_bytes += y; + } + } + return x; +} + +int tgln_read_in (struct connection *c, void *_data, int len) { + unsigned char *data = _data; + if (!len) { return 0; } + assert (len > 0); + if (len > c->in_bytes) { + len = c->in_bytes; + } + int x = 0; + while (len) { + int y = c->in_head->wptr - c->in_head->rptr; + if (y > len) { + memcpy (data, c->in_head->rptr, len); + c->in_head->rptr += len; + c->in_bytes -= len; + return x + len; + } else { + memcpy (data, c->in_head->rptr, y); + c->in_bytes -= y; + x += y; + data += y; + len -= y; + void *old = c->in_head; + c->in_head = c->in_head->next; + if (!c->in_head) { + c->in_tail = 0; + } + delete_connection_buffer (old); + } + } + return x; +} + +int tgln_read_in_lookup (struct connection *c, void *_data, int len) { + unsigned char *data = _data; + if (!len || !c->in_bytes) { return 0; } + assert (len > 0); + if (len > c->in_bytes) { + len = c->in_bytes; + } + int x = 0; + struct connection_buffer *b = c->in_head; + while (len) { + int y = b->wptr - b->rptr; + if (y >= len) { + memcpy (data, b->rptr, len); + return x + len; + } else { + memcpy (data, b->rptr, y); + x += y; + data += y; + len -= y; + b = b->next; + } + } + return x; +} + +void tgln_flush_out (struct connection *c) { +} + +#define MAX_CONNECTIONS 100 +static struct connection *Connections[MAX_CONNECTIONS]; +static int max_connection_fd; + +static void rotate_port (struct connection *c) { + switch (c->port) { + case 443: + c->port = 80; + break; + case 80: + c->port = 25; + break; + case 25: + c->port = 443; + break; + } +} + +static void try_read (struct connection *c); +static void try_write (struct connection *c); + +static void conn_try_read (evutil_socket_t fd, short what, void *arg) { + struct connection *c = arg; + struct tgl_state *TLS = c->TLS; + vlogprintf (E_DEBUG + 1, "Try read. Fd = %d\n", c->fd); + try_read (c); +} +static void conn_try_write (evutil_socket_t fd, short what, void *arg) { + struct connection *c = arg; + struct tgl_state *TLS = c->TLS; + if (c->state == conn_connecting) { + c->state = conn_ready; + c->methods->ready (TLS, c); + } + try_write (c); + if (c->out_bytes) { + event_add (c->write_ev, 0); + } +} + +static SOCKET my_connect (struct connection *c, const char *host) { + struct tgl_state *TLS = c->TLS; + int v6 = TLS->ipv6_enabled; + SOCKET fd = socket (v6 ? AF_INET6 : AF_INET, SOCK_STREAM, 0); +#if defined(WIN32) || defined(_WIN32) + if (fd == INVALID_SOCKET) { + vlogprintf(E_ERROR, "Can not create socket: %s\n", GetLastErrorStr(WSAGetLastError())); +#else + if (fd < 0) { + vlogprintf (E_ERROR, "Can not create socket: %m\n"); +#endif + start_fail_timer (c); + return SOCKET_ERROR; + } + +#if defined(WIN32) || defined(_WIN32) + assert(++max_connection_fd < MAX_CONNECTIONS); +#else + assert (fd >= 0 && fd < MAX_CONNECTIONS); + if (fd > max_connection_fd) { + max_connection_fd = fd; + } +#endif + + int flags = -1; + setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&flags, sizeof (flags)); + setsockopt (fd, SOL_SOCKET, SO_KEEPALIVE, (const char *)&flags, sizeof (flags)); + setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, (const char *)&flags, sizeof (flags)); + + struct sockaddr_in addr; + struct sockaddr_in6 addr6; + memset (&addr, 0, sizeof (addr)); + memset (&addr6, 0, sizeof (addr6)); + if (v6) { + addr6.sin6_family = AF_INET6; + addr6.sin6_port = htons (c->port); + if (inet_pton (AF_INET6, host, &addr6.sin6_addr.s6_addr) != 1) { + vlogprintf (E_ERROR, "Bad ipv6 %s\n", host); +#if defined(WIN32) || defined(_WIN32) + closesocket (fd); + max_connection_fd--; +#else + close (fd); +#endif + return SOCKET_ERROR; + } + } else { + addr.sin_family = AF_INET; + addr.sin_port = htons (c->port); + if (inet_pton (AF_INET, host, &addr.sin_addr.s_addr) != 1) { + vlogprintf (E_ERROR, "Bad ipv4 %s\n", host); +#if defined(WIN32) || defined(_WIN32) + closesocket (fd); + max_connection_fd--; +#else + close (fd); +#endif + return SOCKET_ERROR; + } + } + +#if defined(WIN32) || defined(_WIN32) + unsigned long nonblocking = 1; + assert (ioctlsocket (fd, FIONBIO, &nonblocking) != SOCKET_ERROR); +#else + fcntl (fd, F_SETFL, O_NONBLOCK); +#endif + +#if defined(WIN32) || defined(_WIN32) + if (connect (fd, (struct sockaddr *) (v6 ? (void *)&addr6 : (void *)&addr), v6 ? sizeof (addr6) : sizeof (addr)) != 0) { + if (WSAGetLastError () != WSAEWOULDBLOCK) { + closesocket (fd); + max_connection_fd--; +#else + if (connect (fd, (struct sockaddr *) (v6 ? (void *)&addr6 : (void *)&addr), v6 ? sizeof (addr6) : sizeof (addr)) == -1) { + if (errno != EINPROGRESS) { + close (fd); +#endif + return SOCKET_ERROR; + } + } + return fd; +} + +struct connection *tgln_create_connection (struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods) { + struct connection *c = talloc0 (sizeof (*c)); + c->TLS = TLS; + c->ip = tstrdup (host); + c->port = port; + + SOCKET fd = my_connect (c, c->ip); + if (fd == SOCKET_ERROR) { +#if defined(WIN32) || defined(_WIN32) + vlogprintf(E_ERROR, "Can not connect to %s:%d %s\n", host, port, GetLastErrorStr (WSAGetLastError ())); +#else + vlogprintf (E_ERROR, "Can not connect to %s:%d %m\n", host, port); +#endif + tfree (c, sizeof (*c)); + return 0; + } + + c->fd = fd; + c->state = conn_connecting; + c->last_receive_time = tglt_get_double_time (); + c->flags = 0; + assert (!Connections[fd]); + Connections[fd] = c; + + c->ping_ev = evtimer_new (TLS->ev_base, ping_alarm, c); + c->fail_ev = evtimer_new (TLS->ev_base, fail_alarm, c); + c->write_ev = event_new (TLS->ev_base, c->fd, EV_WRITE, conn_try_write, c); + + struct timeval tv = {5, 0}; + c->read_ev = event_new (TLS->ev_base, c->fd, EV_READ | EV_PERSIST, conn_try_read, c); + event_add (c->read_ev, &tv); + + start_ping_timer (c); + + c->dc = dc; + c->session = session; + c->methods = methods; + + char byte = 0xef; + assert (tgln_write_out (c, &byte, 1) == 1); + tgln_flush_out (c); + + return c; +} + +static void restart_connection (struct connection *c) { + struct tgl_state *TLS = c->TLS; + if (c->last_connect_time == time (0)) { + start_fail_timer (c); + return; + } + + /*if (strcmp (c->ip, c->dc->ip)) { + tfree_str (c->ip); + c->ip = tstrdup (c->dc->ip); + }*/ + c->last_connect_time = (int)time (0); + SOCKET fd = my_connect (c, c->ip); + if (fd == SOCKET_ERROR) { +#if defined(WIN32) || defined(_WIN32) + vlogprintf(E_ERROR, "Can not connect to %s:%d %s\n", c->ip, c->port, GetLastErrorStr (WSAGetLastError ())); +#else + vlogprintf (E_WARNING, "Can not connect to %s:%d %m\n", c->ip, c->port); +#endif + start_fail_timer (c); + return; + } + + c->fd = fd; + c->state = conn_connecting; + c->last_receive_time = tglt_get_double_time (); + start_ping_timer (c); + Connections[fd] = c; + + c->write_ev = event_new (TLS->ev_base, c->fd, EV_WRITE, conn_try_write, c); + + struct timeval tv = {5, 0}; + c->read_ev = event_new (TLS->ev_base, c->fd, EV_READ | EV_PERSIST, conn_try_read, c); + event_add (c->read_ev, &tv); + + char byte = 0xef; + assert (tgln_write_out (c, &byte, 1) == 1); + tgln_flush_out (c); +} + +static void fail_connection (struct connection *c) { + struct tgl_state *TLS = c->TLS; + if (c->state == conn_ready || c->state == conn_connecting) { + stop_ping_timer (c); + } + event_free (c->write_ev); + event_free (c->read_ev); + + rotate_port (c); + struct connection_buffer *b = c->out_head; + while (b) { + struct connection_buffer *d = b; + b = b->next; + delete_connection_buffer (d); + } + b = c->in_head; + while (b) { + struct connection_buffer *d = b; + b = b->next; + delete_connection_buffer (d); + } + c->out_head = c->out_tail = c->in_head = c->in_tail = 0; + c->state = conn_failed; + c->out_bytes = c->in_bytes = 0; +#if defined(WIN32) || defined(_WIN32) + closesocket (c->fd); + max_connection_fd--; +#else + close (c->fd); +#endif + Connections[c->fd] = 0; + vlogprintf (E_NOTICE, "Lost connection to server... %s:%d\n", c->ip, c->port); + restart_connection (c); +} + +//extern FILE *log_net_f; +static void try_write (struct connection *c) { + struct tgl_state *TLS = c->TLS; + vlogprintf (E_DEBUG, "try write: fd = %d\n", c->fd); + int x = 0; + while (c->out_head) { +#if defined(WIN32) || defined(_WIN32) + int r = send(c->fd, c->out_head->rptr, c->out_head->wptr - c->out_head->rptr, 0); + if (r != SOCKET_ERROR) { +#else + int r = write (c->fd, c->out_head->rptr, c->out_head->wptr - c->out_head->rptr); + if (r >= 0) { +#endif + x += r; + c->out_head->rptr += r; + if (c->out_head->rptr != c->out_head->wptr) { + break; + } + struct connection_buffer *b = c->out_head; + c->out_head = b->next; + if (!c->out_head) { + c->out_tail = 0; + } + delete_connection_buffer (b); + } else { +#if defined(WIN32) || defined(_WIN32) + if (/*WSAGetLastError() != EAGAIN && */WSAGetLastError() != WSAEWOULDBLOCK) { + vlogprintf(E_NOTICE, "fail_connection: write_error %s\n", GetLastErrorStr(WSAGetLastError())); +#else + if (errno != EAGAIN && errno != EWOULDBLOCK) { + vlogprintf (E_NOTICE, "fail_connection: write_error %m\n"); +#endif + fail_connection (c); + return; + } else { + break; + } + } + } + vlogprintf (E_DEBUG, "Sent %d bytes to %d\n", x, c->fd); + c->out_bytes -= x; +} + +static void try_rpc_read (struct connection *c) { + assert (c->in_head); + struct tgl_state *TLS = c->TLS; + + while (1) { + if (c->in_bytes < 1) { return; } + unsigned len = 0; + unsigned t = 0; + assert (tgln_read_in_lookup (c, &len, 1) == 1); + if (len >= 1 && len <= 0x7e) { + if (c->in_bytes < (int)(1 + 4 * len)) { return; } + } else { + if (c->in_bytes < 4) { return; } + assert (tgln_read_in_lookup (c, &len, 4) == 4); + len = (len >> 8); + if (c->in_bytes < (int)(4 + 4 * len)) { return; } + len = 0x7f; + } + + if (len >= 1 && len <= 0x7e) { + assert (tgln_read_in (c, &t, 1) == 1); + assert (t == len); + assert (len >= 1); + } else { + assert (len == 0x7f); + assert (tgln_read_in (c, &len, 4) == 4); + len = (len >> 8); + assert (len >= 1); + } + len *= 4; + int op; + assert (tgln_read_in_lookup (c, &op, 4) == 4); + if (c->methods->execute (TLS, c, op, len) < 0) { + return; + } + } +} + +static void try_read (struct connection *c) { + struct tgl_state *TLS = c->TLS; + vlogprintf (E_DEBUG, "try read: fd = %d\n", c->fd); + if (!c->in_tail) { + c->in_head = c->in_tail = new_connection_buffer (1 << 20); + } + #ifdef EVENT_V1 + struct timeval tv = {5, 0}; + event_add (c->read_ev, &tv); + #endif + int x = 0; + while (1) { +#if defined(WIN32) || defined(_WIN32) + int r = recv(c->fd, c->in_tail->wptr, c->in_tail->end - c->in_tail->wptr, 0); + if (r != SOCKET_ERROR) { +#else + int r = read (c->fd, c->in_tail->wptr, c->in_tail->end - c->in_tail->wptr); + if (r > 0) { +#endif + c->last_receive_time = tglt_get_double_time (); + stop_ping_timer (c); + start_ping_timer (c); + } + if (r >= 0) { + c->in_tail->wptr += r; + x += r; + if (c->in_tail->wptr != c->in_tail->end) { + break; + } + struct connection_buffer *b = new_connection_buffer (1 << 20); + c->in_tail->next = b; + c->in_tail = b; + } else { +#if defined(WIN32) || defined(_WIN32) + if (/*WSAGetLastError() != EAGAIN &&*/ WSAGetLastError() != WSAEWOULDBLOCK) { + vlogprintf(E_NOTICE, "fail_connection: read_error %s\n", GetLastErrorStr(WSAGetLastError())); +#else + if (errno != EAGAIN && errno != EWOULDBLOCK) { + vlogprintf (E_NOTICE, "fail_connection: read_error %m\n"); +#endif + fail_connection (c); + return; + } else { + break; + } + } + } + vlogprintf (E_DEBUG, "Received %d bytes from %d\n", x, c->fd); + c->in_bytes += x; + if (x) { + try_rpc_read (c); + } +} + +static void incr_out_packet_num (struct connection *c) { + c->out_packet_num ++; +} + +static struct tgl_dc *get_dc (struct connection *c) { + return c->dc; +} + +static struct tgl_session *get_session (struct connection *c) { + return c->session; +} + +static void tgln_free (struct connection *c) { + if (c->ip) { tfree_str (c->ip); } + if (c->ping_ev) { event_free (c->ping_ev); } + if (c->fail_ev) { event_free (c->fail_ev); } + if (c->read_ev) { event_free (c->read_ev); } + if (c->write_ev) { event_free (c->write_ev); } + + struct connection_buffer *b = c->out_head; + while (b) { + struct connection_buffer *d = b; + b = b->next; + delete_connection_buffer (d); + } + b = c->in_head; + while (b) { + struct connection_buffer *d = b; + b = b->next; + delete_connection_buffer (d); + } + + if (c->fd >= 0) { + Connections[c->fd] = 0; +#if defined(WIN32) || defined(_WIN32) + closesocket (c->fd); + max_connection_fd--; +#else + close (c->fd); +#endif + } + tfree (c, sizeof (*c)); +} + +struct tgl_net_methods tgl_conn_methods = { + .write_out = tgln_write_out, + .read_in = tgln_read_in, + .read_in_lookup = tgln_read_in_lookup, + .flush_out = tgln_flush_out, + .incr_out_packet_num = incr_out_packet_num, + .get_dc = get_dc, + .get_session = get_session, + .create_connection = tgln_create_connection, + .free = tgln_free +}; diff --git a/libs/tgl/src/tgl-net.h b/libs/tgl/src/tgl-net.h new file mode 100644 index 0000000000..6c589a4a38 --- /dev/null +++ b/libs/tgl/src/tgl-net.h @@ -0,0 +1,24 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#ifndef __NET_H__ +#define __NET_H__ + +extern struct tgl_net_methods tgl_conn_methods; +#endif diff --git a/libs/tgl/src/tgl-structures.h b/libs/tgl/src/tgl-structures.h new file mode 100644 index 0000000000..4e3fd9ec32 --- /dev/null +++ b/libs/tgl/src/tgl-structures.h @@ -0,0 +1,69 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#ifndef __STRUCTURES_H__ +#define __STRUCTURES_H__ + +#include +#include "tgl-layout.h" +#include "tgl-fetch.h" +#include "tgl.h" + +char *tgls_default_create_print_name (struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4); + + +void tgls_free_user (struct tgl_state *TLS, struct tgl_user *U); +void tgls_free_chat (struct tgl_state *TLS, struct tgl_chat *U); +void tgls_free_photo (struct tgl_state *TLS, struct tgl_photo *P); +void tgls_free_message (struct tgl_state *TLS, struct tgl_message *M); +void tgls_free_bot_info (struct tgl_state *TLS, struct tgl_bot_info *B); +void tgls_clear_message (struct tgl_state *TLS, struct tgl_message *M); + +struct tgl_message *tglm_message_alloc (struct tgl_state *TLS, long long id); +void tglm_message_insert_tree (struct tgl_state *TLS, struct tgl_message *M); +void tglm_update_message_id (struct tgl_state *TLS, struct tgl_message *M, long long id); +void tglm_message_insert (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_insert_unsent (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_remove_unsent (struct tgl_state *TLS, struct tgl_message *M); +void tglm_send_all_unsent (struct tgl_state *TLS); +void tglm_message_remove_tree (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_add_peer (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_del_peer (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_del_use (struct tgl_state *TLS, struct tgl_message *M); +void tglm_message_add_use (struct tgl_state *TLS, struct tgl_message *M); + +void tglp_peer_insert_name (struct tgl_state *TLS, tgl_peer_t *P); +void tglp_peer_delete_name (struct tgl_state *TLS, tgl_peer_t *P); +void tglp_insert_encrypted_chat (struct tgl_state *TLS, tgl_peer_t *P); +void tglp_insert_user (struct tgl_state *TLS, tgl_peer_t *P); +void tglp_insert_chat (struct tgl_state *TLS, tgl_peer_t *P); +enum tgl_typing_status tglf_fetch_typing (void); +void tgls_messages_mark_read (struct tgl_state *TLS, struct tgl_message *M, int out, int seq); + +void tgls_insert_random2local (struct tgl_state *TLS, long long random_id, int local_id); +int tgls_get_local_by_random (struct tgl_state *TLS, long long random_id); + + +void tgl_photo_insert (struct tgl_state *TLS, struct tgl_photo *P); +struct tgl_photo *tgl_photo_get (struct tgl_state *TLS, long long id); +struct tgl_document *tgl_document_get (struct tgl_state *TLS, long long id); +void tgl_document_insert (struct tgl_state *TLS, struct tgl_document *P); +struct tgl_webpage *tgl_webpage_get (struct tgl_state *TLS, long long id); +void tgl_webpage_insert (struct tgl_state *TLS, struct tgl_webpage *P); +#endif diff --git a/libs/tgl/src/tgl-timers.c b/libs/tgl/src/tgl-timers.c new file mode 100644 index 0000000000..d68f9ac0ec --- /dev/null +++ b/libs/tgl/src/tgl-timers.c @@ -0,0 +1,69 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#include "config.h" +#ifdef EVENT_V2 +#include +#include +#include +#else +#include +#include "event-old.h" +#endif + +#include "tgl.h" +#include + +static void timer_alarm (evutil_socket_t fd, short what, void *arg) { + void **p = arg; + ((void (*)(struct tgl_state *, void *))p[1]) (p[0], p[2]); +} + +struct tgl_timer *tgl_timer_alloc (struct tgl_state *TLS, void (*cb)(struct tgl_state *TLS, void *arg), void *arg) { + void **p = malloc (sizeof (void *) * 3); + p[0] = TLS; + p[1] = cb; + p[2] = arg; + return (void *)evtimer_new (TLS->ev_base, timer_alarm, p); +} + +void tgl_timer_insert (struct tgl_timer *t, double p) { + if (p < 0) { p = 0; } + double e = p - (int)p; + if (e < 0) { e = 0; } + struct timeval pv = { (int)p, (int)(e * 1e6)}; + event_add ((void *)t, &pv); +} + +void tgl_timer_delete (struct tgl_timer *t) { + event_del ((void *)t); +} + +void tgl_timer_free (struct tgl_timer *t) { + void *arg = event_get_callback_arg ((void *)t); + free (arg); + event_free ((void *)t); +} + +struct tgl_timer_methods tgl_libevent_timers = { + .alloc = tgl_timer_alloc, + .insert = tgl_timer_insert, + .remove = tgl_timer_delete, + .free = tgl_timer_free +}; diff --git a/libs/tgl/src/tgl-timers.h b/libs/tgl/src/tgl-timers.h new file mode 100644 index 0000000000..7f52f3bd15 --- /dev/null +++ b/libs/tgl/src/tgl-timers.h @@ -0,0 +1,27 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifndef __TGL_TIMERS_H__ +#define __TGL_TIMERS_H__ + +#include "tgl.h" +extern struct tgl_timer_methods tgl_libevent_timers; + +#endif diff --git a/libs/tgl/src/tgl.c b/libs/tgl/src/tgl.c new file mode 100644 index 0000000000..dd4f2713c9 --- /dev/null +++ b/libs/tgl/src/tgl.c @@ -0,0 +1,149 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "tgl.h" +#include "tools.h" +#include "mtproto-client.h" +#include "tgl-structures.h" +//#include "net.h" + +#include + +struct tgl_state tgl_state; + + +void tgl_set_binlog_mode (struct tgl_state *TLS, int mode) { + TLS->binlog_enabled = mode; +} + +void tgl_set_binlog_path (struct tgl_state *TLS, const char *path) { + TLS->binlog_name = tstrdup (path); +} + +void tgl_set_auth_file_path (struct tgl_state *TLS, const char *path) { + TLS->auth_file = tstrdup (path); +} + +void tgl_set_download_directory (struct tgl_state *TLS, const char *path) { + TLS->downloads_directory = tstrdup (path); +} + +void tgl_set_callback (struct tgl_state *TLS, struct tgl_update_callback *cb) { + TLS->callback = *cb; +} + +void tgl_set_rsa_key (struct tgl_state *TLS, const char *key) { + assert (TLS->rsa_key_num < TGL_MAX_RSA_KEYS_NUM); + TLS->rsa_key_list[TLS->rsa_key_num ++] = tstrdup (key); +} + +void tgl_init (struct tgl_state *TLS) { + assert (TLS->timer_methods); + assert (TLS->net_methods); + if (!TLS->callback.create_print_name) { + TLS->callback.create_print_name = tgls_default_create_print_name; + } + if (!TLS->temp_key_expire_time) { + TLS->temp_key_expire_time = 100000; + } + + TLS->message_list.next_use = &TLS->message_list; + TLS->message_list.prev_use = &TLS->message_list; + + tglmp_on_start (TLS); + + if (!TLS->app_id) { + TLS->app_id = TG_APP_ID; + TLS->app_hash = tstrdup (TG_APP_HASH); + } +} + +int tgl_authorized_dc (struct tgl_state *TLS, struct tgl_dc *DC) { + assert (DC); + return (DC->flags & 4) != 0;//DC->auth_key_id; +} + +int tgl_signed_dc (struct tgl_state *TLS, struct tgl_dc *DC) { + assert (DC); + return (DC->flags & TGLDCF_LOGGED_IN) != 0; +} + +void tgl_register_app_id (struct tgl_state *TLS, int app_id, const char *app_hash) { + TLS->app_id = app_id; + TLS->app_hash = tstrdup (app_hash); +} + +struct tgl_state *tgl_state_alloc (void) { + struct tgl_state *TLS = (struct tgl_state *)malloc (sizeof (*TLS)); + if (!TLS) { return NULL; } + memset (TLS, 0, sizeof (*TLS)); + return TLS; +} + +void tgl_incr_verbosity (struct tgl_state *TLS) { + TLS->verbosity ++; +} + +void tgl_set_verbosity (struct tgl_state *TLS, int val) { + TLS->verbosity = val; +} + +void tgl_enable_pfs (struct tgl_state *TLS) { + TLS->enable_pfs = 1; +} + +void tgl_set_test_mode (struct tgl_state *TLS) { + TLS->test_mode ++; +} + +void tgl_set_net_methods (struct tgl_state *TLS, struct tgl_net_methods *methods) { + TLS->net_methods = methods; +} + +void tgl_set_timer_methods (struct tgl_state *TLS, struct tgl_timer_methods *methods) { + TLS->timer_methods = methods; +} + +void tgl_set_ev_base (struct tgl_state *TLS, void *ev_base) { + TLS->ev_base = ev_base; +} + +void tgl_set_app_version (struct tgl_state *TLS, const char *app_version) { + if (TLS->app_version) { + tfree_str (TLS->app_version); + } + TLS->app_version = tstrdup (app_version); +} + +void tgl_enable_ipv6 (struct tgl_state *TLS) { + TLS->ipv6_enabled = 1; +} + +void tgl_disable_link_preview (struct tgl_state *TLS) { + TLS->disable_link_preview = 1; +} + +void tgl_enable_bot (struct tgl_state *TLS) { + TLS->is_bot = 1; +} diff --git a/libs/tgl/src/tgl.h b/libs/tgl/src/tgl.h new file mode 100644 index 0000000000..2da8c7a254 --- /dev/null +++ b/libs/tgl/src/tgl.h @@ -0,0 +1,659 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2014-2015 +*/ +#ifndef __TGL_H__ +#define __TGL_H__ + +#include "tgl-layout.h" +#include +#include +#ifdef _WIN32 +#include "config.h" +#define WIN32_LEAN_AND_MEAN +#include +#undef WIN32_LEAN_AND_MEAN +#endif + +#define TGL_MAX_DC_NUM 100 +#define TG_SERVER_1 "149.154.175.50" +#define TG_SERVER_2 "149.154.167.51" +#define TG_SERVER_3 "149.154.175.100" +#define TG_SERVER_4 "149.154.167.91" +#define TG_SERVER_5 "149.154.171.5" +#define TG_SERVER_IPV6_1 "2001:b28:f23d:f001::a" +#define TG_SERVER_IPV6_2 "2001:67c:4e8:f002::a" +#define TG_SERVER_IPV6_3 "2001:b28:f23d:f003::a" +#define TG_SERVER_IPV6_4 "2001:67c:4e8:f004::a" +#define TG_SERVER_IPV6_5 "2001:b28:f23f:f005::a" +#define TG_SERVER_DEFAULT 2 + +#define TG_SERVER_TEST_1 "149.154.175.10" +#define TG_SERVER_TEST_2 "149.154.167.40" +#define TG_SERVER_TEST_3 "149.154.175.117" +#define TG_SERVER_TEST_IPV6_1 "2001:b28:f23d:f001::e" +#define TG_SERVER_TEST_IPV6_2 "2001:67c:4e8:f002::e" +#define TG_SERVER_TEST_IPV6_3 "2001:b28:f23d:f003::e" +#define TG_SERVER_TEST_DEFAULT 2 + +// JUST RANDOM STRING +#define TGL_VERSION "2.0.3" + +#define TGL_ENCRYPTED_LAYER 17 +#define TGL_SCHEME_LAYER 31 + +struct connection; +struct mtproto_methods; +struct tgl_session; +struct tgl_dc; + +#define TGL_UPDATE_CREATED 1 +#define TGL_UPDATE_DELETED 2 +#define TGL_UPDATE_PHONE 4 +#define TGL_UPDATE_CONTACT 8 +#define TGL_UPDATE_PHOTO 16 +#define TGL_UPDATE_BLOCKED 32 +#define TGL_UPDATE_REAL_NAME 64 +#define TGL_UPDATE_NAME 128 +#define TGL_UPDATE_REQUESTED 256 +#define TGL_UPDATE_WORKING 512 +#define TGL_UPDATE_FLAGS 1024 +#define TGL_UPDATE_TITLE 2048 +#define TGL_UPDATE_ADMIN 4096 +#define TGL_UPDATE_MEMBERS 8192 +#define TGL_UPDATE_ACCESS_HASH 16384 +#define TGL_UPDATE_USERNAME (1 << 15) + +#if defined(WIN32) || defined(_WIN32) +# if !defined(__cplusplus) && ( !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L ) +# if __GNUC__ >= 2 || (defined(_MSC_VER) && _MSC_VER >= 1300) +# define __func__ __FUNCTION__ +# else +# define __func__ "" +# endif +# endif +# ifdef _MSC_VER +# define __attribute__(x) +# endif +# define _PRINTF_INT64_ "I64" +# define lrand48() rand() +# define srand48(x) srand(x) + inline const char* GetLastErrorStr(int err) + { + static char errorText[256] = { 0 }; + FormatMessageA( + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + err, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)&errorText, + 256, + NULL); + return (const char*)errorText; + } + + inline const char* GetErrnoStr(int err) + { + static char errnoStr[256] = { 0 }; + strerror_s(errnoStr, 256, err); + return (const char*)errnoStr; + } +#else +# define _PRINTF_INT64_ "ll" +#endif + +struct tgl_allocator { + void *(*alloc)(size_t size); + void *(*realloc)(void *ptr, size_t old_size, size_t size); + void (*free)(void *ptr, int size); + void (*check)(void); + void (*exists)(void *ptr, int size); +}; +extern struct tgl_allocator tgl_allocator_release; +extern struct tgl_allocator tgl_allocator_debug; +struct tgl_state; + +enum tgl_value_type { + tgl_phone_number, // user phone number + tgl_code, // telegram login code, or 'call' for phone call request + tgl_register_info, // "Y/n" register?, first name, last name + tgl_new_password, // new pass, confirm new pass + tgl_cur_and_new_password, // curr pass, new pass, confirm new pass + tgl_cur_password, // current pass + tgl_bot_hash +}; + +struct tgl_update_callback { + void (*new_msg)(struct tgl_state *TLS, struct tgl_message *M); + void (*marked_read)(struct tgl_state *TLS, int num, struct tgl_message *list[]); + void (*logprintf)(const char *format, ...) __attribute__ ((format (printf, 1, 2))); + void (*get_values)(struct tgl_state *TLS, enum tgl_value_type type, const char *prompt, int num_values, + void (*callback)(struct tgl_state *TLS, const char *string[], void *arg), void *arg); + void (*logged_in)(struct tgl_state *TLS); + void (*started)(struct tgl_state *TLS); + void (*type_notification)(struct tgl_state *TLS, struct tgl_user *U, enum tgl_typing_status status); + void (*type_in_chat_notification)(struct tgl_state *TLS, struct tgl_user *U, struct tgl_chat *C, enum tgl_typing_status status); + void (*type_in_secret_chat_notification)(struct tgl_state *TLS, struct tgl_secret_chat *E); + void (*status_notification)(struct tgl_state *TLS, struct tgl_user *U); + void (*user_registered)(struct tgl_state *TLS, struct tgl_user *U); + void (*user_activated)(struct tgl_state *TLS, struct tgl_user *U); + void (*new_authorization)(struct tgl_state *TLS, const char *device, const char *location); + void (*chat_update)(struct tgl_state *TLS, struct tgl_chat *C, unsigned flags); + void (*user_update)(struct tgl_state *TLS, struct tgl_user *C, unsigned flags); + void (*secret_chat_update)(struct tgl_state *TLS, struct tgl_secret_chat *C, unsigned flags); + void (*msg_receive)(struct tgl_state *TLS, struct tgl_message *M); + void (*our_id)(struct tgl_state *TLS, int id); + void (*notification)(struct tgl_state *TLS, const char *type, const char *message); + void (*user_status_update)(struct tgl_state *TLS, struct tgl_user *U); + char *(*create_print_name) (struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4); +}; + +struct tgl_net_methods { + int (*write_out) (struct connection *c, const void *data, int len); + int (*read_in) (struct connection *c, void *data, int len); + int (*read_in_lookup) (struct connection *c, void *data, int len); + void (*flush_out) (struct connection *c); + void (*incr_out_packet_num) (struct connection *c); + void (*free) (struct connection *c); + struct tgl_dc *(*get_dc) (struct connection *c); + struct tgl_session *(*get_session) (struct connection *c); + + struct connection *(*create_connection) (struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods); +}; + +struct mtproto_methods { + int (*ready) (struct tgl_state *TLS, struct connection *c); + int (*close) (struct tgl_state *TLS, struct connection *c); + int (*execute) (struct tgl_state *TLS, struct connection *c, int op, int len); +}; + +struct tgl_timer; +struct tree_random_id; + +struct tgl_timer_methods { + struct tgl_timer *(*alloc) (struct tgl_state *TLS, void (*cb)(struct tgl_state *TLS, void *arg), void *arg); + void (*insert) (struct tgl_timer *t, double timeout); + void (*remove) (struct tgl_timer *t); + void (*free) (struct tgl_timer *t); +}; + +#define E_ERROR 0 +#define E_WARNING 1 +#define E_NOTICE 2 +#define E_DEBUG 6 + +#define TGL_LOCK_DIFF 1 +#define TGL_LOCK_PASSWORD 2 + +#define TGL_MAX_RSA_KEYS_NUM 10 +// Do not modify this structure, unless you know what you do + +#pragma pack(push,4) +struct tgl_state { + int our_id; // ID of logged in user + int encr_root; + unsigned char *encr_prime; + void *encr_prime_bn; + int encr_param_version; + int pts; + int qts; + int date; + int seq; + int binlog_enabled; + int test_mode; + int verbosity; + int unread_messages; + int active_queries; + int max_msg_id; + int started; + int disable_link_preview; + + long long locks; + struct tgl_dc *DC_list[TGL_MAX_DC_NUM]; + struct tgl_dc *DC_working; + int max_dc_num; + int dc_working_num; + int enable_pfs; + int temp_key_expire_time; + + long long cur_uploading_bytes; + long long cur_uploaded_bytes; + long long cur_downloading_bytes; + long long cur_downloaded_bytes; + + char *binlog_name; + char *auth_file; + char *downloads_directory; + + struct tgl_update_callback callback; + struct tgl_net_methods *net_methods; + void *ev_base; + + char *rsa_key_list[TGL_MAX_RSA_KEYS_NUM]; + void *rsa_key_loaded[TGL_MAX_RSA_KEYS_NUM]; + long long rsa_key_fingerprint[TGL_MAX_RSA_KEYS_NUM]; + int rsa_key_num; + + struct bignum_ctx *BN_ctx; + + struct tgl_allocator allocator; + + struct tree_peer *peer_tree; + struct tree_peer_by_name *peer_by_name_tree; + struct tree_message *message_tree; + struct tree_message *message_unsent_tree; + struct tree_photo *photo_tree; + struct tree_document *document_tree; + struct tree_webpage *webpage_tree; + struct tree_encr_document *encr_document_tree; + + int users_allocated; + int chats_allocated; + int messages_allocated; + int peer_num; + int peer_size; + int encr_chats_allocated; + int geo_chats_allocated; + + tgl_peer_t **Peers; + struct tgl_message message_list; + + int binlog_fd; + + struct tgl_timer_methods *timer_methods; + + struct tree_query *queries_tree; + + char *base_path; + + struct tree_user *online_updates; + + struct tgl_timer *online_updates_timer; + + int app_id; + char *app_hash; + + void *ev_login; + + char *app_version; + int ipv6_enabled; + + struct tree_random_id *random_id_tree; + + char *error; + int error_code; + + int is_bot; +}; +#pragma pack(pop) +//extern struct tgl_state tgl_state; + +#ifdef __cplusplus +extern "C" { +#endif + +void tgl_reopen_binlog_for_writing (struct tgl_state *TLS); +void tgl_replay_log (struct tgl_state *TLS); + +int tgl_print_stat (struct tgl_state *TLS, char *s, int len); +tgl_peer_t *tgl_peer_get (struct tgl_state *TLS, tgl_peer_id_t id); +tgl_peer_t *tgl_peer_get_by_name (struct tgl_state *TLS, const char *s); + +struct tgl_message *tgl_message_get (struct tgl_state *TLS, long long id); +void tgl_peer_iterator_ex (struct tgl_state *TLS, void (*it)(tgl_peer_t *P, void *extra), void *extra); + +int tgl_complete_user_list (struct tgl_state *TLS, int index, const char *text, int len, char **R); +int tgl_complete_chat_list (struct tgl_state *TLS, int index, const char *text, int len, char **R); +int tgl_complete_encr_chat_list (struct tgl_state *TLS, int index, const char *text, int len, char **R); +int tgl_complete_peer_list (struct tgl_state *TLS, int index, const char *text, int len, char **R); +int tgl_secret_chat_for_user (struct tgl_state *TLS, tgl_peer_id_t user_id); +int tgl_do_send_bot_auth (struct tgl_state *TLS, const char *code, int code_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra); + +#define TGL_PEER_USER 1 +#define TGL_PEER_CHAT 2 +#define TGL_PEER_GEO_CHAT 3 +#define TGL_PEER_ENCR_CHAT 4 +#define TGL_PEER_UNKNOWN 0 + +#define TGL_MK_USER(id) tgl_set_peer_id (TGL_PEER_USER,id) +#define TGL_MK_CHAT(id) tgl_set_peer_id (TGL_PEER_CHAT,id) +#define TGL_MK_GEO_CHAT(id) tgl_set_peer_id (TGL_PEER_GEO_CHAT,id) +#define TGL_MK_ENCR_CHAT(id) tgl_set_peer_id (TGL_PEER_ENCR_CHAT,id) + +void tgl_set_binlog_mode (struct tgl_state *TLS, int mode); +void tgl_set_binlog_path (struct tgl_state *TLS, const char *path); +void tgl_set_auth_file_path (struct tgl_state *TLS, const char *path); +void tgl_set_download_directory (struct tgl_state *TLS, const char *path); +void tgl_set_callback (struct tgl_state *TLS, struct tgl_update_callback *cb); +void tgl_set_rsa_key (struct tgl_state *TLS, const char *key); +void tgl_set_app_version (struct tgl_state *TLS, const char *app_version); + +static inline int tgl_get_peer_type (tgl_peer_id_t id) { + return id.type; +} + +static inline int tgl_get_peer_id (tgl_peer_id_t id) { + return id.id; +} + +static inline tgl_peer_id_t tgl_set_peer_id (int type, int id) { + tgl_peer_id_t ID; + ID.id = id; + ID.type = type; + return ID; +} + +static inline int tgl_cmp_peer_id (tgl_peer_id_t a, tgl_peer_id_t b) { + return memcmp (&a, &b, sizeof (a)); +} + +void tgl_incr_verbosity (struct tgl_state *TLS); +void tgl_set_verbosity (struct tgl_state *TLS, int val); +void tgl_enable_pfs (struct tgl_state *TLS); +void tgl_set_test_mode (struct tgl_state *TLS); +void tgl_set_net_methods (struct tgl_state *TLS, struct tgl_net_methods *methods); +void tgl_set_timer_methods (struct tgl_state *TLS, struct tgl_timer_methods *methods); +void tgl_set_ev_base (struct tgl_state *TLS, void *ev_base); + +int tgl_authorized_dc (struct tgl_state *TLS, struct tgl_dc *DC); +int tgl_signed_dc (struct tgl_state *TLS, struct tgl_dc *DC); + +void tgl_init (struct tgl_state *TLS); +void tgl_dc_authorize (struct tgl_state *TLS, struct tgl_dc *DC); + +void tgl_dc_iterator (struct tgl_state *TLS, void (*iterator)(struct tgl_dc *DC)); +void tgl_dc_iterator_ex (struct tgl_state *TLS, void (*iterator)(struct tgl_dc *DC, void *extra), void *extra); + +#define TGL_SEND_MSG_FLAG_DISABLE_PREVIEW 1 +#define TGL_SEND_MSG_FLAG_ENABLE_PREVIEW 2 + +#define TGL_SEND_MSG_FLAG_DOCUMENT_IMAGE TGLDF_IMAGE +#define TGL_SEND_MSG_FLAG_DOCUMENT_STICKER TGLDF_STICKER +#define TGL_SEND_MSG_FLAG_DOCUMENT_ANIMATED TGLDF_ANIMATED +#define TGL_SEND_MSG_FLAG_DOCUMENT_AUDIO TGLDF_AUDIO +#define TGL_SEND_MSG_FLAG_DOCUMENT_VIDEO TGLDF_VIDEO +#define TGL_SEND_MSG_FLAG_DOCUMENT_AUTO 32 +#define TGL_SEND_MSG_FLAG_DOCUMENT_PHOTO 64 + +#define TGL_SEND_MSG_FLAG_REPLY(x) (((unsigned long long)x) << 32) + +typedef tgl_peer_id_t tgl_user_id_t; +typedef tgl_peer_id_t tgl_chat_id_t; +typedef tgl_peer_id_t tgl_secret_chat_id_t; +typedef tgl_peer_id_t tgl_user_or_chat_id_t; + +void tgl_insert_empty_user (struct tgl_state *TLS, int id); +void tgl_insert_empty_chat (struct tgl_state *TLS, int id); + + +void tgl_free_all (struct tgl_state *TLS); +void tgl_register_app_id (struct tgl_state *TLS, int app_id, const char *app_hash); + +void tgl_login (struct tgl_state *TLS); +void tgl_enable_ipv6 (struct tgl_state *TLS); +void tgl_enable_bot (struct tgl_state *TLS); + +struct tgl_state *tgl_state_alloc (void); + +void tgl_disable_link_preview (struct tgl_state *TLS); +void tgl_do_lookup_state (struct tgl_state *TLS); + +/* {{{ WORK WITH ACCOUNT */ +// sets account password +// user will be requested to type his current password and new password (twice) +void tgl_do_set_password (struct tgl_state *TLS, const char *hint, int hint_len, void (*callback)(struct tgl_state *TLS, void *extra, int success), void *extra); +/* }}} */ + +/* {{{ SENDING MESSAGES */ + +struct tl_ds_reply_markup; + +// send plain text message to peer id +// flags is combination of TGL_SEND_MSG_FLAG_* +// reply markup can be NULL +void tgl_do_send_message (struct tgl_state *TLS, tgl_peer_id_t id, const char *text, int text_len, unsigned long long flags, struct tl_ds_reply_markup *reply_markup, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// sends plain text reply on message *reply_id* +// message *reply_id* should be cached +void tgl_do_reply_message (struct tgl_state *TLS, int reply_id, const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// sends contents of text file *file_name* as plain text message +void tgl_do_send_text (struct tgl_state *TLS, tgl_peer_id_t id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); +void tgl_do_reply_text (struct tgl_state *TLS, int reply_id, const char *file_name, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// send media from file *file_name* to peer *to_id* +// if reply > 0 this message is sent as reply to message *reply* +// *caption* is used only for photos +void tgl_do_send_document (struct tgl_state *TLS, tgl_peer_id_t to_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); +void tgl_do_reply_document (struct tgl_state *TLS, int reply_id, const char *file_name, const char *caption, int caption_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// forward message *msg_id* to peer *id* +// message can not be encrypted and peer can not be secret chat +void tgl_do_forward_message (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int msg_id, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// forward messages *ids* to peer *id* +// messages can not be encrypted and peer can not be secret chat +void tgl_do_forward_messages (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int size, const int ids[], unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int count, struct tgl_message *ML[]), void *callback_extra); + +// sends contact to another user. +// This contact may be or may not be telegram user +void tgl_do_send_contact (struct tgl_state *TLS, tgl_peer_id_t id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// reply on message *reply_id* with contact +void tgl_do_reply_contact (struct tgl_state *TLS, int reply_id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// sends media from message *msg_id* to another dialog +// a bit different from forwarding message with media +// secret message media can be forwarded to secret chats +// and non-secret - to non-secret chats and users +void tgl_do_forward_media (struct tgl_state *TLS, tgl_peer_id_t id, int msg_id, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// sends location to chat *id* +void tgl_do_send_location (struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// replies on message *reply_id* with location +void tgl_do_reply_location (struct tgl_state *TLS, int reply_id, double latitude, double longitude, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// sends broadcast (i.e. message to several users at once) +// flags are same as in tgl_do_send_message +void tgl_do_send_broadcast (struct tgl_state *TLS, int num, tgl_user_id_t id[], const char *text, int text_len, unsigned long long flags, void (*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra); + +/* }}} */ + +/* {{{ EDITING SELF PROFILE */ +// sets self profile photo +// server will cut central square from this photo +void tgl_do_set_profile_photo (struct tgl_state *TLS, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// rename self account +void tgl_do_set_profile_name (struct tgl_state *TLS, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra); + +// sets self username +void tgl_do_set_username (struct tgl_state *TLS, const char *username, int username_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra); + +// updates online/offline status +void tgl_do_update_status (struct tgl_state *TLS, int online, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// exports card. This card can be later be used by another user to add you to dialog list. +void tgl_do_export_card (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, int *card), void *callback_extra); +/* }}} */ + +/* {{{ WORKING WITH GROUP CHATS */ + +// sets chat photo +// server will cut central square from this photo +void tgl_do_set_chat_photo (struct tgl_state *TLS, tgl_chat_id_t chat_id, const char *file_name, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// sets chat title +void tgl_do_rename_chat (struct tgl_state *TLS, tgl_chat_id_t id, const char *new_title, int new_title_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// requests full info about chat *id*. +// if *offline_mode* is set no actual query is sent +void tgl_do_get_chat_info (struct tgl_state *TLS, tgl_chat_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *C), void *callback_extra); + +// adds user *id* to chat *chat_id* +// sends *limit* last messages from this chat to user +void tgl_do_add_user_to_chat (struct tgl_state *TLS, tgl_chat_id_t chat_id, tgl_user_id_t id, int limit, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// deleted user *id* from chat *chat_id* +// you can do it if you are admin (=creator) of chat or if you invited this user or if it is yourself +void tgl_do_del_user_from_chat (struct tgl_state *TLS, tgl_chat_id_t chat_id, tgl_user_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// creates group chat with users ids +// there should be at least one user other then you in chat +void tgl_do_create_group_chat (struct tgl_state *TLS, int users_num, tgl_user_id_t ids[], const char *chat_topic, int chat_topic_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// receives invitation link to this chat +// only chat admin can create one +// prevoius link invalidated, if existed +void tgl_do_export_chat_link (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *link), void *callback_extra); + +// joins to secret chat by link (or hash of this link) +void tgl_do_import_chat_link (struct tgl_state *TLS, const char *link, int link_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +/* }}} */ + +/* {{{ WORKING WITH USERS */ + +// requests full info about user *id*. +// if *offline_mode* is set no actual query is sent +void tgl_do_get_user_info (struct tgl_state *TLS, tgl_user_id_t id, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra); + +// adds contact to contact list by phone number +// user will be named *first_name* *last_name* in contact list +// force should be set to 0 +void tgl_do_add_contact (struct tgl_state *TLS, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, int force, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra); + +// deletes user *id* from contact list +void tgl_do_del_contact (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// imports card exported by another user +void tgl_do_import_card (struct tgl_state *TLS, int size, int *card, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra); + +// blocks user +void tgl_do_block_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// unblocks blocked user +void tgl_do_unblock_user (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); +/* }}} */ + +/* {{{ WORKING WITH SECRET CHATS */ + +// requests creation of secret chat with user *user_id* +//void tgl_do_create_encr_chat_request (struct tgl_state *TLS, int user_id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra); + +// accepts secret chat request +// method can fail if another device will be first to accept it +void tgl_do_accept_encr_chat_request (struct tgl_state *TLS, struct tgl_secret_chat *E, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra); + +// sets ttl of secret chat +void tgl_do_set_encr_chat_ttl (struct tgl_state *TLS, struct tgl_secret_chat *E, int ttl, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +// returns secret chat fingerprint +int tgl_do_visualize_key (struct tgl_state *TLS, tgl_secret_chat_id_t id, unsigned char buf[16]); + +// requests creation of secret chat with user id +void tgl_do_create_secret_chat (struct tgl_state *TLS, tgl_user_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra); +/* }}} */ + +/* {{{ WORKING WITH DIALOG LIST */ + +// receives all dialogs (except secret chats) from offset=*offset* with limit=*limit* +// dialogs are sorted by last message received +// if limit is > 100 there is a (small) chance of one dialog received twice +void tgl_do_get_dialog_list (struct tgl_state *TLS, int limit, int offset, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra); + +// resolves username +void tgl_do_contact_search (struct tgl_state *TLS, const char *name, int name_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra); + +// requests contact list +void tgl_do_update_contact_list (struct tgl_state *TLS, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[]), void *callback_extra); + +/* }}} */ + +/* {{{ WORKING WITH ONE DIALOG */ + +// marks all inbound messages from peer id as read +void tgl_do_mark_read (struct tgl_state *TLS, tgl_peer_id_t id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// requests last *limit* from offset *offset* (offset = 0 means most recent) messages from dialog with peer id +// if offline_mode=1 then no actual query is sent +// only locally cached messages returned +// also marks messages from this chat as read +void tgl_do_get_history (struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, int offline_mode, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra); + +// sends typing event to chat +// set status=tgl_typing_typing for default typing event +void tgl_do_send_typing (struct tgl_state *TLS, tgl_peer_id_t id, enum tgl_typing_status status, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +/* }}} */ + +/* {{{ WORKING WITH MEDIA */ + +// loads photo/document/document_thumb to downloads directory +// if file is presented it is not redownloaded (but if it is shortened tail will be downloaded) +// returns file name in callback +void tgl_do_load_photo (struct tgl_state *TLS, struct tgl_photo *photo, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra); +void tgl_do_load_encr_document (struct tgl_state *TLS, struct tgl_encr_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra); +void tgl_do_load_document (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra); +void tgl_do_load_document_thumb (struct tgl_state *TLS, struct tgl_document *video, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra); +void tgl_do_load_video (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra); +void tgl_do_load_audio (struct tgl_state *TLS, struct tgl_document *V, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *filename), void *callback_extra); + + +// loads file by location. Use only for small files! +void tgl_do_load_file_location (struct tgl_state *TLS, struct tgl_file_location *FL, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *file_name), void *callback_extra); + +/* }}} */ + + +/* {{{ ANOTHER MESSAGES FUNCTIONS */ +// search messages with ids *from* .. *to* in dialog id +// id type of id is UNKNOWN uses global search (in all dialogs) instead +// if *from* or *to* is means *from*=0 and *to*=+INF +// return up to *limit* entries from offset=*offset* +void tgl_do_msg_search (struct tgl_state *TLS, tgl_user_or_chat_id_t id, int from, int to, int limit, int offset, const char *query, int query_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra); + +// deletes message *id* +void tgl_do_delete_msg (struct tgl_state *TLS, long long msg_id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); + +// gets message by *id* +void tgl_do_get_message (struct tgl_state *TLS, long long id, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra); + +/* }}} */ + + +/* {{{ EXTENDED QUERIES USE WITH CAUTION */ +// sends query with extended text syntax +// use only for debug or when you known what are you doing +// since answer is not interpretated by library in any way +void tgl_do_send_extf (struct tgl_state *TLS, const char *data, int data_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success, const char *data), void *callback_extra); +int tglf_extf_autocomplete (struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len); +struct paramed_type *tglf_extf_store (struct tgl_state *TLS, const char *data, int data_len); +char *tglf_extf_fetch (struct tgl_state *TLS, struct paramed_type *T); +/* }}} */ + +/* {{{ BOT */ +void tgl_do_start_bot (struct tgl_state *TLS, tgl_peer_id_t bot, tgl_peer_id_t chat, const char *str, int str_len, void (*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra); +/* }}} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libs/tgl/src/tools.c b/libs/tgl/src/tools.c new file mode 100644 index 0000000000..e4022c0ca1 --- /dev/null +++ b/libs/tgl/src/tools.c @@ -0,0 +1,406 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include "..\..\zlib\src\zlib.h" +#include +#if defined(WIN32) || defined(_WIN32) +#include +#include +#include +#include +#include +#else +#include +#endif // _WIN32 + +//#include "interface.h" +#include "tools.h" + +#ifdef __MACH__ +#include +#include +#endif + +#if defined(__MACH__) || defined(WIN32) || defined(_WIN32) +#define CLOCK_REALTIME 0 +#define CLOCK_MONOTONIC 1 +#endif + +#ifdef VALGRIND_FIXES +#include "valgrind/memcheck.h" +#endif + +#define RES_PRE 8 +#define RES_AFTER 8 +#define MAX_BLOCKS 1000000 +static void *blocks[MAX_BLOCKS]; +static void *free_blocks[MAX_BLOCKS]; +static int used_blocks; +static int free_blocks_cnt; + +static long long total_allocated_bytes; + +#if defined(WIN32) || defined(_WIN32) +#define exp7 10000000i64 //1E+7 //C-file part +#define exp9 1000000000i64 //1E+9 +#define w2ux 116444736000000000i64 //1.jan1601 to 1.jan1970 +#define __need_clock_t +#include + +int gettimeofday(struct timeval* t, void* timezone) { + struct _timeb timebuffer; + _ftime_s(&timebuffer); + t->tv_sec = (long)timebuffer.time; + t->tv_usec = 1000 * timebuffer.millitm; + return 0; +} + + +struct tms { + clock_t tms_utime; + clock_t tms_stime; + + clock_t tms_cutime; + clock_t tms_cstime; +}; + +clock_t times(struct tms *__buffer) { + __buffer->tms_utime = clock(); + __buffer->tms_stime = 0; + __buffer->tms_cstime = 0; + __buffer->tms_cutime = 0; + return __buffer->tms_utime; +} + +typedef long long suseconds_t; + +int vasprintf(char ** __restrict ret, const char * __restrict format, va_list ap) { + int len; + /* Get Length */ + len = _vsnprintf_s(NULL, 0, 0, format, ap); + if (len < 0) return -1; + + /* +1 for \0 terminator. */ + *ret = malloc(len + 1); + if (!*ret) return -1; + + _vsnprintf_s(*ret, len + 1, len + 1, format, ap); + + /* Terminate explicitly */ + (*ret)[len] = '\0'; + return len; +} +#endif // WIN32 + +void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2), weak)); +void logprintf (const char *format, ...) { + va_list ap; + va_start (ap, format); + vfprintf (stdout, format, ap); + va_end (ap); +} + +//extern int verbosity; + +//static long long total_allocated_bytes; + +int tgl_snprintf (char *buf, int len, const char *format, ...) { + va_list ap; + va_start (ap, format); + int r = vsnprintf (buf, len, format, ap); + va_end (ap); + assert (r <= len && "tsnprintf buffer overflow"); + return r; +} + +int tgl_asprintf (char **res, const char *format, ...) { + va_list ap; + va_start (ap, format); + int r = vasprintf (res, format, ap); + assert (r >= 0); + va_end (ap); + void *rs = talloc (strlen (*res) + 1); + memcpy (rs, *res, strlen (*res) + 1); + free (*res); + *res = rs; + return r; +} + +void tgl_free_debug (void *ptr, int size __attribute__ ((unused))) { + total_allocated_bytes -= size; + (char*)ptr -= RES_PRE; + if (size != (int)((*(int *)ptr) ^ 0xbedabeda)) { + logprintf ("size = %d, ptr = %d\n", size, (*(int *)ptr) ^ 0xbedabeda); + } + assert (*(int *)ptr == (int)((size) ^ 0xbedabeda)); + assert (*(int *)((char *)ptr + RES_PRE + size) == (int)((size) ^ 0x7bed7bed)); + assert (*(int *)((char *)ptr + 4) == size); + int block_num = *(int *)((char*)ptr + 4 + RES_PRE + size); + if (block_num >= used_blocks) { + logprintf ("block_num = %d, used = %d\n", block_num, used_blocks); + } + assert (block_num < used_blocks); + if (block_num < used_blocks - 1) { + void *p = blocks[used_blocks - 1]; + int s = (*(int *)p) ^ 0xbedabeda; + *(int *)((char *)p + 4 + RES_PRE + s) = block_num; + blocks[block_num] = p; + } + blocks[--used_blocks] = 0; + memset (ptr, 0, size + RES_PRE + RES_AFTER); + *(int *)ptr = size + 12; + free_blocks[free_blocks_cnt ++] = ptr; +} + +void tgl_free_release (void *ptr, int size) { + memset (ptr, 0, size); + free (ptr); +} + + + +void *tgl_realloc_debug (void *ptr, size_t old_size __attribute__ ((unused)), size_t size) { + void *p = talloc (size); + memcpy (p, ptr, size >= old_size ? old_size : size); + tfree (ptr, old_size); + return p; +} + +void *tgl_realloc_release (void *ptr, size_t old_size __attribute__ ((unused)), size_t size) { + void *p = realloc (ptr, size); + ensure_ptr (p); + return p; +} + +void *tgl_alloc_debug (size_t size) { + total_allocated_bytes += size; + void *p = malloc (size + RES_PRE + RES_AFTER); + ensure_ptr (p); + *(int *)p = size ^ 0xbedabeda; + *(int *)((char *)p + 4) = size; + *(int *)((char *)p + RES_PRE + size) = size ^ 0x7bed7bed; + *(int *)((char *)p + RES_AFTER + 4 + size) = used_blocks; + blocks[used_blocks ++] = p; + + //tcheck (); + return (char *)p + 8; +} + +void *tgl_alloc_release (size_t size) { + void *p = malloc (size); + ensure_ptr (p); + return p; +} + +void *tgl_alloc0 (size_t size) { + void *p = talloc (size); + memset (p, 0, size); + return p; +} + +char *tgl_strdup (const char *s) { + int l = strlen (s); + char *p = talloc (l + 1); +#if defined(WIN32) || defined(_WIN32) + ZeroMemory(p, l + 1); +#endif + memcpy (p, s, l + 1); + return p; +} + +char *tgl_strndup (const char *s, size_t n) { + size_t l = 0; + for (l = 0; l < n && s[l]; l++) { } + char *p = talloc (l + 1); + memcpy (p, s, l); + p[l] = 0; + return p; +} + +void *tgl_memdup (const void *s, size_t n) { + void *r = talloc (n); + memcpy (r, s, n); + return r; +} + + +int tgl_inflate (void *input, int ilen, void *output, int olen) { + z_stream strm; + memset (&strm, 0, sizeof (strm)); + assert (inflateInit2 (&strm, 16 + MAX_WBITS) == Z_OK); + strm.avail_in = ilen; + strm.next_in = input; + strm.avail_out = olen ; + strm.next_out = output; + int err = inflate (&strm, Z_FINISH); + int total_out = strm.total_out; + + if (err != Z_OK && err != Z_STREAM_END) { + logprintf ( "inflate error = %d\n", err); + logprintf ( "inflated %d bytes\n", (int) strm.total_out); + total_out = 0; + } + inflateEnd (&strm); + return total_out; +} + +void tgl_check_debug (void) { + int i; + for (i = 0; i < used_blocks; i++) { + void *ptr = blocks[i]; + int size = (*(int *)ptr) ^ 0xbedabeda; + if (!(*(int *)((char *)ptr + 4) == size) || + !(*(int *)((char *)ptr + RES_PRE + size) == (size ^ 0x7bed7bed)) || + !(*(int *)((char *)ptr + RES_PRE + 4 + size) == i)) { + logprintf ("Bad block at address %p (size %d, num %d)\n", ptr, size, i); + assert (0 && "Bad block"); + } + } + for (i = 0; i < free_blocks_cnt; i++) { + void *ptr = free_blocks[i]; + int l = *(int *)ptr; + int j = 0; + for (j = 0; j < l; j++) { + if (*(char *)((char *)ptr + 4 + j)) { + hexdump ((char *)ptr + 8, (char *)ptr + 8 + l + ((-l) & 3)); + logprintf ("Used freed memory size = %d. ptr = %p\n", l + 4 - RES_PRE - RES_AFTER, ptr); + assert (0); + } + } + } + //logprintf ("ok. Used_blocks = %d. Free blocks = %d\n", used_blocks, free_blocks_cnt); +} + +void tgl_exists_debug (void *ptr, int size) { + (char *)ptr -= RES_PRE; + if (size != (int)((*(int *)ptr) ^ 0xbedabeda)) { + logprintf ("size = %d, ptr = %d\n", size, (*(int *)ptr) ^ 0xbedabeda); + } + assert (*(int *)ptr == (int)((size) ^ 0xbedabeda)); + assert (*(int *)((char *)ptr + RES_PRE + size) == (int)((size) ^ 0x7bed7bed)); + assert (*(int *)((char *)ptr + 4) == size); + int block_num = *(int *)((char *)ptr + 4 + RES_PRE + size); + if (block_num >= used_blocks) { + logprintf ("block_num = %d, used = %d\n", block_num, used_blocks); + } + assert (block_num < used_blocks); +} + +void tgl_exists_release (void *ptr, int size) {} +void tgl_check_release (void) {} + +void tgl_my_clock_gettime (int clock_id, struct timespec *T) { +#if defined(WIN32) || defined(_WIN32) + static double ticks2nano; + static __int64 tps = 0; + __int64 tmp, curticks; + _Bool real_time = (clock_id == CLOCK_REALTIME); + + QueryPerformanceFrequency((LARGE_INTEGER*)&tmp); + if (tps != tmp) { + tps = tmp; + ticks2nano = (double)exp9 / tps; + } + + if (clock_id == CLOCK_REALTIME) + { + __int64 wintime; + GetSystemTimeAsFileTime((FILETIME*)&wintime); + wintime -= w2ux; + T->tv_sec = wintime / exp7; + T->tv_nsec = wintime % exp7 * 100; + } + else + { + QueryPerformanceCounter((LARGE_INTEGER*)&curticks); + T->tv_sec = (long)(curticks / tps); + T->tv_nsec = (long)((double)(curticks % tps) * ticks2nano); + } + + if (!(T->tv_nsec < exp9)) + { + T->tv_sec++; + T->tv_nsec -= exp9; + } + +#elif defined( __MACH__) + // We are ignoring MONOTONIC and hope time doesn't go back too often + clock_serv_t cclock; + mach_timespec_t mts; + host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); + clock_get_time(cclock, &mts); + mach_port_deallocate(mach_task_self(), cclock); + T->tv_sec = mts.tv_sec; + T->tv_nsec = mts.tv_nsec; +#else + assert (clock_gettime(clock_id, T) >= 0); +#endif +} + +double tglt_get_double_time (void) { + struct timespec tv; + tgl_my_clock_gettime (CLOCK_REALTIME, &tv); + return tv.tv_sec + 1e-9 * tv.tv_nsec; +} + +void tglt_secure_random (void *s, int l) { + if (RAND_bytes (s, l) <= 0) { + /*if (allow_weak_random) { + RAND_pseudo_bytes (s, l); + } else {*/ + assert (0 && "End of random. If you want, you can start with -w"); + //} + } else { + #ifdef VALGRIND_FIXES + VALGRIND_MAKE_MEM_DEFINED (s, l); + VALGRIND_CHECK_MEM_IS_DEFINED (s, l); + #endif + } +} + +struct tgl_allocator tgl_allocator_debug = { + .alloc = tgl_alloc_debug, + .realloc = tgl_realloc_debug, + .free = tgl_free_debug, + .check = tgl_check_debug, + .exists = tgl_exists_debug +}; + +struct tgl_allocator tgl_allocator_release = { + .alloc = tgl_alloc_release, + .realloc = tgl_realloc_release, + .free = tgl_free_release, + .check = tgl_check_release, + .exists = tgl_exists_release +}; + +struct tgl_allocator *tgl_allocator = &tgl_allocator_release; diff --git a/libs/tgl/src/tools.h b/libs/tgl/src/tools.h new file mode 100644 index 0000000000..9484e60bf1 --- /dev/null +++ b/libs/tgl/src/tools.h @@ -0,0 +1,142 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifndef __TOOLS_H__ +#define __TOOLS_H__ +#include +#include +#include +#include "tgl.h" + +#define talloc tgl_allocator->alloc +#define talloc0 tgl_alloc0 +#define tfree tgl_allocator->free +#define tfree_str tgl_free_str +#define tfree_secure tgl_free_secure +#define trealloc tgl_allocator->realloc +#define tcheck tgl_allocator->check +#define texists tgl_allocator->exists +#define tstrdup tgl_strdup +#define tmemdup tgl_memdup +#define tstrndup tgl_strndup +#define tasprintf tgl_asprintf +#define tsnprintf tgl_snprintf + +struct _timespec32 +{ + __time32_t tv_sec; + long tv_nsec; +}; + +struct _timespec64 +{ + __time64_t tv_sec; + long tv_nsec; +}; + +#ifndef _CRT_NO_TIME_T +struct timespec +{ + time_t tv_sec; // Seconds - >= 0 + long tv_nsec; // Nanoseconds - [0, 999999999] +}; +#endif + +extern struct tgl_allocator *tgl_allocator; +double tglt_get_double_time (void); + +int tgl_inflate (void *input, int ilen, void *output, int olen); +//void ensure (int r); +//void ensure_ptr (void *p); + +static inline void out_of_memory (void) { + fprintf (stderr, "Out of memory\n"); + exit (1); +} + +static inline void ensure (int r) { + if (!r) { + fprintf (stderr, "Open SSL error\n"); + ERR_print_errors_fp (stderr); + assert (0); + } +} + +static inline void ensure_ptr (void *p) { + if (p == NULL) { + out_of_memory (); + } +} + +void *tgl_alloc_debug (size_t size); +void *tgl_alloc_release (size_t size); + +void *tgl_realloc_debug (void *ptr, size_t old_size, size_t size); +void *tgl_realloc_release (void *ptr, size_t old_size, size_t size); + +void *tgl_alloc0 (size_t size); +char *tgl_strdup (const char *s); +char *tgl_strndup (const char *s, size_t n); + +void tgl_free_debug (void *ptr, int size); +void tgl_free_release (void *ptr, int size); +//void tgl_free_str (void *ptr); +//void tgl_free_secure (void *ptr, int size); + +void tgl_check_debug (void); +void tgl_exists_debug (void *ptr, int size); +void tgl_check_release (void); +void tgl_exists_release (void *ptr, int size); + +void *tgl_memdup (const void *s, size_t n); + +int tgl_snprintf (char *buf, int len, const char *format, ...) __attribute__ ((format (printf, 3, 4))); +int tgl_asprintf (char **res, const char *format, ...) __attribute__ ((format (printf, 2, 3))); + +void tglt_secure_random (void *s, int l); +void tgl_my_clock_gettime (int clock_id, struct timespec *T); + +static inline void tgl_free_str (void *ptr) { + if (!ptr) { return; } + tfree (ptr, strlen ((const char *)ptr) + 1); +} + +static inline void tgl_free_secure (void *ptr, int size) { + memset (ptr, 0, size); + tfree (ptr, size); +} + +static inline void hexdump (void *ptr, void *end_ptr) { + int total = 0; + unsigned char *bptr = (unsigned char *)ptr; + while (bptr < (unsigned char *)end_ptr) { + fprintf (stderr, "%02x", (int)*bptr); + bptr ++; + total ++; + if (total == 16) { + fprintf (stderr, "\n"); + total = 0; + } + } + if (total) { fprintf (stderr, "\n"); } +} + + +#endif diff --git a/libs/tgl/src/tree.h b/libs/tgl/src/tree.h new file mode 100644 index 0000000000..18feb3aed5 --- /dev/null +++ b/libs/tgl/src/tree.h @@ -0,0 +1,179 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#ifndef __TREE_H__ +#define __TREE_H__ +#include + +#include +#include +#include "tools.h" + +#pragma pack(push,4) +#define DEFINE_TREE(X_NAME, X_TYPE, X_CMP, X_UNSET) \ +struct tree_ ## X_NAME { \ + struct tree_ ## X_NAME *left, *right;\ + X_TYPE x;\ + int y;\ +};\ +\ +static struct tree_ ## X_NAME *new_tree_node_ ## X_NAME (X_TYPE x, int y) {\ + struct tree_ ## X_NAME *T = talloc (sizeof (*T));\ + T->x = x;\ + T->y = y;\ + T->left = T->right = 0;\ + return T;\ +}\ +\ +static void delete_tree_node_ ## X_NAME (struct tree_ ## X_NAME *T) {\ + tfree (T, sizeof (*T));\ +}\ +\ +static void tree_split_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, struct tree_ ## X_NAME **L, struct tree_ ## X_NAME **R) {\ + if (!T) {\ + *L = *R = 0;\ + } else {\ + int c = X_CMP (x, T->x);\ + if (c < 0) {\ + tree_split_ ## X_NAME (T->left, x, L, &T->left);\ + *R = T;\ + } else {\ + tree_split_ ## X_NAME (T->right, x, &T->right, R);\ + *L = T;\ + }\ + }\ +}\ +\ +static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) __attribute__ ((warn_unused_result,unused));\ +static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) {\ + if (!T) {\ + return new_tree_node_ ## X_NAME (x, y);\ + } else {\ + if (y > T->y) {\ + struct tree_ ## X_NAME *N = new_tree_node_ ## X_NAME (x, y);\ + tree_split_ ## X_NAME (T, x, &N->left, &N->right);\ + return N;\ + } else {\ + int c = X_CMP (x, T->x);\ + assert (c);\ + if (c < 0) { \ + T->left = tree_insert_ ## X_NAME (T->left, x, y);\ + } else { \ + T->right = tree_insert_ ## X_NAME (T->right, x, y);\ + } \ + return T; \ + }\ + }\ +}\ +\ +static struct tree_ ## X_NAME *tree_merge_ ## X_NAME (struct tree_ ## X_NAME *L, struct tree_ ## X_NAME *R) {\ + if (!L || !R) {\ + return L ? L : R;\ + } else {\ + if (L->y > R->y) {\ + L->right = tree_merge_ ## X_NAME (L->right, R);\ + return L;\ + } else {\ + R->left = tree_merge_ ## X_NAME (L, R->left);\ + return R;\ + }\ + }\ +}\ +\ +static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((warn_unused_result,unused));\ +static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\ + assert (T);\ + int c = X_CMP (x, T->x);\ + if (!c) {\ + struct tree_ ## X_NAME *N = tree_merge_ ## X_NAME (T->left, T->right);\ + delete_tree_node_ ## X_NAME (T);\ + return N;\ + } else {\ + if (c < 0) { \ + T->left = tree_delete_ ## X_NAME (T->left, x); \ + } else { \ + T->right = tree_delete_ ## X_NAME (T->right, x); \ + } \ + return T; \ + }\ +}\ +\ +static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *t) __attribute__ ((unused));\ +static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *T) {\ + if (!T) { return X_UNSET; } \ + while (T->left) { T = T->left; }\ + return T->x; \ +} \ +\ +static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((unused));\ +static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\ + int c;\ + while (T && (c = X_CMP (x, T->x))) {\ + T = (c < 0 ? T->left : T->right);\ + }\ + return T ? T->x : X_UNSET;\ +}\ +\ +static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) __attribute__ ((unused));\ +static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) {\ + if (!T) { return; } \ + tree_act_ ## X_NAME (T->left, act); \ + act (T->x); \ + tree_act_ ## X_NAME (T->right, act); \ +}\ +\ +static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) __attribute__ ((unused));\ +static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) {\ + if (!T) { return; } \ + tree_act_ex_ ## X_NAME (T->left, act, extra); \ + act (T->x, extra); \ + tree_act_ex_ ## X_NAME (T->right, act, extra); \ +}\ +\ +static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\ +static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) { \ + if (!T) { return 0; }\ + return 1 + tree_count_ ## X_NAME (T->left) + tree_count_ ## X_NAME (T->right); \ +}\ +static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\ +static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) { \ + if (!T) { return; }\ + if (T->left) { \ + assert (T->left->y <= T->y);\ + assert (X_CMP (T->left->x, T->x) < 0); \ + }\ + if (T->right) { \ + assert (T->right->y <= T->y);\ + assert (X_CMP (T->right->x, T->x) > 0); \ + }\ + tree_check_ ## X_NAME (T->left); \ + tree_check_ ## X_NAME (T->right); \ +}\ +static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\ +static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) { \ + if (!T) { return 0; }\ + tree_clear_ ## X_NAME (T->left); \ + tree_clear_ ## X_NAME (T->right); \ + delete_tree_node_ ## X_NAME (T); \ + return 0; \ +} \ + +#define int_cmp(a,b) ((a) - (b)) +#pragma pack(pop) +#endif diff --git a/libs/tgl/src/updates.c b/libs/tgl/src/updates.c new file mode 100644 index 0000000000..0f4b209f54 --- /dev/null +++ b/libs/tgl/src/updates.c @@ -0,0 +1,668 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ +#include "tgl.h" +#include "updates.h" +#include "mtproto-common.h" +#include "tgl-binlog.h" +#include "auto.h" +#include "auto/auto-types.h" +#include "auto/auto-skip.h" +#include "auto/auto-fetch-ds.h" +#include "auto/auto-free-ds.h" +#include "tgl-structures.h" +#include "tgl-methods-in.h" +#include "tree.h" + +#include + +static void fetch_dc_option_new (struct tgl_state *TLS, struct tl_ds_dc_option *DS_DO) { + vlogprintf (E_DEBUG, "id = %d, name = %.*s ip = %.*s port = %d\n", DS_LVAL (DS_DO->id), DS_RSTR (DS_DO->hostname), DS_RSTR (DS_DO->ip_address), DS_LVAL (DS_DO->port)); + + bl_do_dc_option (TLS, DS_LVAL (DS_DO->id), DS_STR (DS_DO->hostname), DS_STR (DS_DO->ip_address), DS_LVAL (DS_DO->port)); +} + +int tgl_check_pts_diff (struct tgl_state *TLS, int pts, int pts_count) { + vlogprintf (E_DEBUG - 1, "pts = %d, pts_count = %d\n", pts, pts_count); + if (!TLS->pts) { + return 1; + } + //assert (TLS->pts); + if (pts < TLS->pts + pts_count) { + vlogprintf (E_NOTICE, "Duplicate message with pts=%d\n", pts); + return -1; + } + if (pts > TLS->pts + pts_count) { + vlogprintf (E_NOTICE, "Hole in pts (pts = %d, count = %d, cur_pts = %d)\n", pts, pts_count, TLS->pts); + tgl_do_get_difference (TLS, 0, 0, 0); + return -1; + } + if (TLS->locks & TGL_LOCK_DIFF) { + vlogprintf (E_DEBUG, "Update during get_difference. pts = %d\n", pts); + return -1; + } + vlogprintf (E_DEBUG, "Ok update. pts = %d\n", pts); + return 1; +} + +int tgl_check_qts_diff (struct tgl_state *TLS, int qts, int qts_count) { + vlogprintf (E_ERROR, "qts = %d, qts_count = %d\n", qts, qts_count); + if (qts < TLS->qts + qts_count) { + vlogprintf (E_NOTICE, "Duplicate message with qts=%d\n", qts); + return -1; + } + if (qts > TLS->qts + qts_count) { + vlogprintf (E_NOTICE, "Hole in qts (qts = %d, count = %d, cur_qts = %d)\n", qts, qts_count, TLS->qts); + tgl_do_get_difference (TLS, 0, 0, 0); + return -1; + } + if (TLS->locks & TGL_LOCK_DIFF) { + vlogprintf (E_DEBUG, "Update during get_difference. qts = %d\n", qts); + return -1; + } + vlogprintf (E_DEBUG, "Ok update. qts = %d\n", qts); + return 1; +} + +static int do_skip_seq (struct tgl_state *TLS, int seq) { + if (!seq) { + vlogprintf (E_DEBUG, "Ok update. seq = %d\n", seq); + return 0; + } + if (TLS->seq) { + if (seq <= TLS->seq) { + vlogprintf (E_NOTICE, "Duplicate message with seq=%d\n", seq); + return -1; + } + if (seq > TLS->seq + 1) { + vlogprintf (E_NOTICE, "Hole in seq (seq = %d, cur_seq = %d)\n", seq, TLS->seq); + //vlogprintf (E_NOTICE, "lock_diff = %s\n", (TLS->locks & TGL_LOCK_DIFF) ? "true" : "false"); + tgl_do_get_difference (TLS, 0, 0, 0); + return -1; + } + if (TLS->locks & TGL_LOCK_DIFF) { + vlogprintf (E_DEBUG, "Update during get_difference. seq = %d\n", seq); + return -1; + } + vlogprintf (E_DEBUG, "Ok update. seq = %d\n", seq); + return 0; + } else { + return -1; + } +} + +void tglu_work_update_new (struct tgl_state *TLS, int check_only, struct tl_ds_update *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + vlogprintf (E_DEBUG, "Update during get_difference. DROP\n"); + return; + } + + if (DS_U->pts) { + assert (DS_U->pts_count); + + if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) { + return; + } + } + + if (DS_U->qts) { + if (!check_only && tgl_check_qts_diff (TLS, DS_LVAL (DS_U->qts), 1) <= 0) { + return; + } + } + + if (check_only > 0 && DS_U->magic != CODE_update_message_i_d) { return; } + switch (DS_U->magic) { + case CODE_update_new_message: + { + struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id)); + int new = (!N || !(N->flags & TGLMF_CREATED)); + struct tgl_message *M = tglf_fetch_alloc_message_new (TLS, DS_U->message); + assert (M); + if (new) { + bl_do_msg_update (TLS, M->id); + } + break; + }; + case CODE_update_message_i_d: + { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->random_id)); + if (M) { + tgls_insert_random2local (TLS, DS_LVAL (DS_U->random_id), DS_LVAL (DS_U->id)); + bl_do_set_msg_id (TLS, M, DS_LVAL (DS_U->id)); + } + } + break; +/* case CODE_update_read_messages: + { + int n = DS_LVAL (DS_U->messages->cnt); + + int i; + for (i = 0; i < n; i++) { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->messages->data[i])); + if (M) { + tgl_peer_t *P; + if (M->flags & TGLMF_OUT) { + P = tgl_peer_get (TLS, M->to_id); + if (P && (P->flags & TGLMF_CREATED)) { + if (tgl_get_peer_type (P->id) == TGL_PEER_USER) { + bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, (int *)&M->id, TGL_FLAGS_UNCHANGED); + } else { + bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (int *)&M->id, TGL_FLAGS_UNCHANGED); + } + } + } else { + if (tgl_get_peer_type (M->to_id) == TGL_PEER_USER) { + P = tgl_peer_get (TLS, M->from_id); + } else { + P = tgl_peer_get (TLS, M->to_id); + } + if (P && (P->flags & TGLMF_CREATED)) { + if (tgl_get_peer_type (P->id) == TGL_PEER_USER) { + bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, (int *)&M->id, NULL, TGL_FLAGS_UNCHANGED); + } else { + bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (int *)&M->id, NULL, TGL_FLAGS_UNCHANGED); + } + } + } + } + } + } + break;*/ + case CODE_update_user_typing: + { + tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *U = tgl_peer_get (TLS, id); + enum tgl_typing_status status = tglf_fetch_typing_new (DS_U->action); + + if (TLS->callback.type_notification && U) { + TLS->callback.type_notification (TLS, (void *)U, status); + } + } + break; + case CODE_update_chat_user_typing: + { + tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_id_t id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *C = tgl_peer_get (TLS, chat_id); + tgl_peer_t *U = tgl_peer_get (TLS, id); + enum tgl_typing_status status = tglf_fetch_typing_new (DS_U->action); + + if (U && C) { + if (TLS->callback.type_in_chat_notification) { + TLS->callback.type_in_chat_notification (TLS, (void *)U, (void *)C, status); + } + } + } + break; + case CODE_update_user_status: + { + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *U = tgl_peer_get (TLS, user_id); + if (U) { + tglf_fetch_user_status_new (TLS, &U->user.status, &U->user, DS_U->status); + + if (TLS->callback.status_notification) { + TLS->callback.status_notification (TLS, (void *)U); + } + } + } + break; + case CODE_update_user_name: + { + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *UC = tgl_peer_get (TLS, user_id); + if (UC && (UC->flags & TGLPF_CREATED)) { + bl_do_user_new (TLS, tgl_get_peer_id (user_id), NULL, NULL, 0, NULL, 0, NULL, 0, DS_STR (DS_U->username), NULL, DS_STR (DS_U->first_name), DS_STR (DS_U->last_name), NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED); + } + } + break; + case CODE_update_user_photo: + { + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *UC = tgl_peer_get (TLS, user_id); + + if (UC && (UC->flags & TGLUF_CREATED)) { + bl_do_user_new (TLS, tgl_get_peer_id (user_id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, DS_U->photo, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED); + } + } + break; + case CODE_update_delete_messages: + { + } + break; + case CODE_update_chat_participants: + { + tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_t *C = tgl_peer_get (TLS, chat_id); + if (C && (C->flags & TGLPF_CREATED) && DS_U->participants->magic == CODE_chat_participants) { + bl_do_chat_new (TLS, tgl_get_peer_id (chat_id), NULL, 0, NULL, NULL, DS_U->participants->version, (struct tl_ds_vector *)DS_U->participants->participants, NULL, NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED); + } + } + break; + case CODE_update_contact_registered: + { + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *U = tgl_peer_get (TLS, user_id); + if (TLS->callback.user_registered && U) { + TLS->callback.user_registered (TLS, (void *)U); + } + } + break; + case CODE_update_contact_link: + { + } + break; + /*case CODE_update_activation: + { + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_t *U = tgl_peer_get (TLS, user_id); + + if (TLS->callback.user_activated && U) { + TLS->callback.user_activated (TLS, (void *)U); + } + } + break;*/ + case CODE_update_new_authorization: + { + if (TLS->callback.new_authorization) { + TLS->callback.new_authorization (TLS, DS_U->device->data, DS_U->location->data); + } + } + break; + case CODE_update_new_geo_chat_message: + { + } + break; + case CODE_update_new_encrypted_message: + { + struct tgl_message *M = tglf_fetch_alloc_encrypted_message_new (TLS, DS_U->encr_message); + bl_do_msg_update (TLS, M->id); + } + break; + case CODE_update_encryption: + { + struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat_new (TLS, DS_U->encr_chat); + vlogprintf (E_DEBUG, "Secret chat state = %d\n", E->state); + if (E->state == sc_ok) { + tgl_do_send_encr_chat_layer (TLS, E); + } + } + break; + case CODE_update_encrypted_chat_typing: + { + tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_t *P = tgl_peer_get (TLS, id); + + if (P) { + if (TLS->callback.type_in_secret_chat_notification) { + TLS->callback.type_in_secret_chat_notification (TLS, (void *)P); + } + } + } + break; + case CODE_update_encrypted_messages_read: + { + tgl_peer_id_t id = TGL_MK_ENCR_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_t *P = tgl_peer_get (TLS, id); + + if (P && P->last) { + struct tgl_message *M = P->last; + while (M && (!(M->flags & TGLMF_OUT) || (M->flags & TGLMF_UNREAD))) { + if (M->flags & TGLMF_OUT) { + bl_do_create_message_encr_new (TLS, M->id, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, M->flags & ~TGLMF_UNREAD); + } + M = M->next; + } + } + } + break; + case CODE_update_chat_participant_add: + { + tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + tgl_peer_id_t inviter_id = TGL_MK_USER (DS_LVAL (DS_U->inviter_id)); + int version = DS_LVAL (DS_U->version); + + tgl_peer_t *C = tgl_peer_get (TLS, chat_id); + if (C && (C->flags & TGLPF_CREATED)) { + bl_do_chat_add_user (TLS, &C->chat, version, tgl_get_peer_id (user_id), tgl_get_peer_id (inviter_id), (int)time (0)); + } + } + break; + case CODE_update_chat_participant_delete: + { + tgl_peer_id_t chat_id = TGL_MK_CHAT (DS_LVAL (DS_U->chat_id)); + tgl_peer_id_t user_id = TGL_MK_USER (DS_LVAL (DS_U->user_id)); + int version = DS_LVAL (DS_U->version); + + tgl_peer_t *C = tgl_peer_get (TLS, chat_id); + if (C && (C->flags & TGLPF_CREATED)) { + bl_do_chat_del_user (TLS, &C->chat, version, tgl_get_peer_id (user_id)); + } + } + break; + case CODE_update_dc_options: + { + int i; + for (i = 0; i < DS_LVAL (DS_U->dc_options->cnt); i++) { + fetch_dc_option_new (TLS, DS_U->dc_options->data[i]); + } + } + break; + case CODE_update_user_blocked: + { + int blocked = DS_BVAL (DS_U->blocked); + tgl_peer_t *P = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id))); + if (P && (P->flags & TGLPF_CREATED)) { + int flags = P->flags & 0xffff; + if (blocked) { + flags |= TGLUF_BLOCKED; + } else { + flags &= ~TGLUF_BLOCKED; + } + bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, flags); + } + } + break; + case CODE_update_notify_settings: + { + } + break; + case CODE_update_service_notification: + { + vlogprintf (E_ERROR, "Notification %.*s: %.*s\n", DS_RSTR (DS_U->type), DS_RSTR (DS_U->message_text)); + if (TLS->callback.notification) { + TLS->callback.notification (TLS, DS_U->type->data, DS_U->message_text->data); + } + } + break; + case CODE_update_privacy: + vlogprintf (E_NOTICE, "privacy change update\n"); + break; + case CODE_update_user_phone: + { + tgl_peer_t *U = tgl_peer_get (TLS, TGL_MK_USER (DS_LVAL (DS_U->user_id))); + if (U && (U->flags & TGLPF_CREATED)) { + bl_do_user_new (TLS, tgl_get_peer_id (U->id), NULL, NULL, 0, NULL, 0, DS_STR (DS_U->phone), NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, TGL_FLAGS_UNCHANGED); + } + } + break; + case CODE_update_read_history_inbox: + { + tgl_peer_id_t id = tglf_fetch_peer_id_new (TLS, DS_U->peer); + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (P && (P->flags & TGLPF_CREATED)) { + if (tgl_get_peer_type (P->id) == TGL_PEER_USER) { + bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, DS_U->max_id, NULL, NULL, TGL_FLAGS_UNCHANGED); + } else { + bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, DS_U->max_id, NULL, TGL_FLAGS_UNCHANGED); + } + } + } + break; + case CODE_update_read_history_outbox: + { + tgl_peer_id_t id = tglf_fetch_peer_id_new (TLS, DS_U->peer); + tgl_peer_t *P = tgl_peer_get (TLS, id); + if (P && (P->flags & TGLPF_CREATED)) { + if (tgl_get_peer_type (P->id) == TGL_PEER_USER) { + bl_do_user_new (TLS, tgl_get_peer_id (P->id), NULL, NULL, 0, NULL, 0, NULL, 0, NULL, 0, NULL, NULL, 0, NULL, 0, NULL, NULL, DS_U->max_id, NULL, TGL_FLAGS_UNCHANGED); + } else { + bl_do_chat_new (TLS, tgl_get_peer_id (P->id), NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, DS_U->max_id, TGL_FLAGS_UNCHANGED); + } + } + } + break; + case CODE_update_web_page: + { + } + break; + case CODE_update_msg_update: + { + struct tgl_message *M = tgl_message_get (TLS, DS_LVAL (DS_U->id)); + if (M) { + bl_do_msg_update (TLS, M->id); + } + } + break; + case CODE_update_read_messages_contents: + break; + default: + assert (0); + } + + if (check_only) { return; } + + if (DS_U->pts) { + assert (DS_U->pts_count); + + bl_do_set_pts (TLS, DS_LVAL (DS_U->pts)); + } + if (DS_U->qts) { + bl_do_set_qts (TLS, DS_LVAL (DS_U->qts)); + } +} + +void tglu_work_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (!check_only && do_skip_seq (TLS, DS_LVAL (DS_U->seq)) < 0) { + return; + } + int i; + for (i = 0; i < DS_LVAL (DS_U->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_U->users->data[i]); + } + for (i = 0; i < DS_LVAL (DS_U->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_U->chats->data[i]); + } + for (i = 0; i < DS_LVAL (DS_U->updates->cnt); i++) { + tglu_work_update_new (TLS, check_only, DS_U->updates->data[i]); + } + + if (check_only) { return; } + bl_do_set_date (TLS, DS_LVAL (DS_U->date)); + bl_do_set_seq (TLS, DS_LVAL (DS_U->seq)); +} + +void tglu_work_updates_combined_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (!check_only && do_skip_seq (TLS, DS_LVAL (DS_U->seq_start)) < 0) { + return; + } + + int i; + for (i = 0; i < DS_LVAL (DS_U->users->cnt); i++) { + tglf_fetch_alloc_user_new (TLS, DS_U->users->data[i]); + } + for (i = 0; i < DS_LVAL (DS_U->chats->cnt); i++) { + tglf_fetch_alloc_chat_new (TLS, DS_U->chats->data[i]); + } + for (i = 0; i < DS_LVAL (DS_U->updates->cnt); i++) { + tglu_work_update_new (TLS, check_only, DS_U->updates->data[i]); + } + + if (check_only) { return; } + bl_do_set_date (TLS, DS_LVAL (DS_U->date)); + bl_do_set_seq (TLS, DS_LVAL (DS_U->seq)); +} + +void tglu_work_update_short_message_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) { + return; + } + + if (check_only > 0) { return; } + + struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id)); + int new = (!N || !(N->flags & TGLMF_CREATED)); + + struct tgl_message *M = tglf_fetch_alloc_message_short_new (TLS, DS_U); + assert (M); + + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (new) { + bl_do_msg_update (TLS, M->id); + } + + if (check_only) { return; } + bl_do_set_pts (TLS, DS_LVAL (DS_U->pts)); +} + +void tglu_work_update_short_chat_message_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (!check_only && tgl_check_pts_diff (TLS, DS_LVAL (DS_U->pts), DS_LVAL (DS_U->pts_count)) <= 0) { + return; + } + + if (check_only > 0) { return; } + + struct tgl_message *N = tgl_message_get (TLS, DS_LVAL (DS_U->id)); + int new = (!N || !(N->flags & TGLMF_CREATED)); + + struct tgl_message *M = tglf_fetch_alloc_message_short_chat_new (TLS, DS_U); + assert (M); + + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + + if (new) { + bl_do_msg_update (TLS, M->id); + } + + if (check_only) { return; } + bl_do_set_pts (TLS, DS_LVAL (DS_U->pts)); +} + +void tglu_work_updates_to_long_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + vlogprintf (E_NOTICE, "updates too long... Getting difference\n"); + if (check_only) { return; } + tgl_do_get_difference (TLS, 0, 0, 0); +} + +void tglu_work_update_short_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + tglu_work_update_new (TLS, check_only, DS_U->update); +} + +void tglu_work_any_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U) { + if (check_only > 0 || (TLS->locks & TGL_LOCK_DIFF)) { + return; + } + switch (DS_U->magic) { + case CODE_updates_too_long: + tglu_work_updates_to_long_new (TLS, check_only, DS_U); + return; + case CODE_update_short_message: + tglu_work_update_short_message_new (TLS, check_only, DS_U); + return; + case CODE_update_short_chat_message: + tglu_work_update_short_chat_message_new (TLS, check_only, DS_U); + return; + case CODE_update_short: + tglu_work_update_short_new (TLS, check_only, DS_U); + return; + case CODE_updates_combined: + tglu_work_updates_combined_new (TLS, check_only, DS_U); + return; + case CODE_updates: + tglu_work_updates_new (TLS, check_only, DS_U); + return; + default: + assert (0); + } +} + +void tglu_work_any_updates (struct tgl_state *TLS) { + struct tl_ds_updates *DS_U = fetch_ds_type_updates (TYPE_TO_PARAM (updates)); + assert (DS_U); + tglu_work_any_updates_new (TLS, 1, DS_U); + tglu_work_any_updates_new (TLS, 0, DS_U); + free_ds_type_updates (DS_U, TYPE_TO_PARAM (updates)); +} + +#define user_cmp(a,b) (tgl_get_peer_id ((a)->id) - tgl_get_peer_id ((b)->id)) +DEFINE_TREE(user, struct tgl_user *,user_cmp,0) + +static void notify_status (struct tgl_user *U, void *ex) { + struct tgl_state *TLS = ex; + if (TLS->callback.user_status_update) { + TLS->callback.user_status_update (TLS, U); + } +} + +static void status_notify (struct tgl_state *TLS, void *arg) { + tree_act_ex_user (TLS->online_updates, notify_status, TLS); + tree_clear_user (TLS->online_updates); + TLS->online_updates = NULL; + TLS->timer_methods->free (TLS->online_updates_timer); + TLS->online_updates_timer = NULL; +} + +void tgl_insert_status_update (struct tgl_state *TLS, struct tgl_user *U) { + if (!tree_lookup_user (TLS->online_updates, U)) { + TLS->online_updates = tree_insert_user (TLS->online_updates, U, lrand48 ()); + } + if (!TLS->online_updates_timer) { + TLS->online_updates_timer = TLS->timer_methods->alloc (TLS, status_notify, 0); + TLS->timer_methods->insert (TLS->online_updates_timer, 0); + } +} + +static void user_expire (struct tgl_state *TLS, void *arg) { + struct tgl_user *U = arg; + TLS->timer_methods->free (U->status.ev); + U->status.ev = 0; + U->status.online = -1; + U->status.when = (int)tglt_get_double_time (); + tgl_insert_status_update (TLS, U); +} + +void tgl_insert_status_expire (struct tgl_state *TLS, struct tgl_user *U) { + assert (!U->status.ev); + U->status.ev = TLS->timer_methods->alloc (TLS, user_expire, U); + TLS->timer_methods->insert (U->status.ev, U->status.when - tglt_get_double_time ()); +} + +void tgl_remove_status_expire (struct tgl_state *TLS, struct tgl_user *U) { + TLS->timer_methods->free (U->status.ev); + U->status.ev = 0; +} diff --git a/libs/tgl/src/updates.h b/libs/tgl/src/updates.h new file mode 100644 index 0000000000..98f4654544 --- /dev/null +++ b/libs/tgl/src/updates.h @@ -0,0 +1,34 @@ +/* + This file is part of tgl-library + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Copyright Vitaly Valtman 2013-2015 +*/ + +#ifndef __UPDATES_H__ +#define __UPDATES_H__ +struct tl_ds_updates; +struct tl_ds_update; +void tgl_insert_status_update (struct tgl_state *TLS, struct tgl_user *U); +void tgl_insert_status_expire (struct tgl_state *TLS, struct tgl_user *U); +void tgl_remove_status_expire (struct tgl_state *TLS, struct tgl_user *U); + +int tgl_check_pts_diff (struct tgl_state *TLS, int pts, int pts_count); +void tglu_work_update_new (struct tgl_state *TLS, int check_only, struct tl_ds_update *DS_U); +void tglu_work_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U); +void tglu_work_any_updates (struct tgl_state *TLS); +void tglu_work_any_updates_new (struct tgl_state *TLS, int check_only, struct tl_ds_updates *DS_U); +#endif diff --git a/libs/tgl/src/wingetopt.c b/libs/tgl/src/wingetopt.c new file mode 100644 index 0000000000..09dac17a4f --- /dev/null +++ b/libs/tgl/src/wingetopt.c @@ -0,0 +1,82 @@ +/* +POSIX getopt for Windows + +AT&T Public License + +Code given out at the 1985 UNIFORUM conference in Dallas. +*/ + +#ifndef __GNUC__ + +#include "wingetopt.h" +#include +#include + +#ifndef NULL +#define NULL 0 +#endif +#define EOF (-1) +#define ERR(s, c) if(opterr){\ + char errbuf[2];\ + errbuf[0] = c; errbuf[1] = '\n';\ + fputs(argv[0], stderr);\ + fputs(s, stderr);\ + fputc(c, stderr);} +//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\ + //(void) write(2, s, (unsigned)strlen(s));\ + //(void) write(2, errbuf, 2);} + +int opterr = 1; +int optind = 1; +int optopt; +char *optarg; + +int +getopt(argc, argv, opts) +int argc; +char **argv, *opts; +{ + static int sp = 1; + register int c; + register char *cp; + + if (sp == 1) + if (optind >= argc || + argv[optind][0] != '-' || argv[optind][1] == '\0') + return(EOF); + else if (strcmp(argv[optind], "--") == (int)NULL) { + optind++; + return(EOF); + } + optopt = c = argv[optind][sp]; + if (c == ':' || (cp = strchr(opts, c)) == NULL) { + ERR(": illegal option -- ", c); + if (argv[optind][++sp] == '\0') { + optind++; + sp = 1; + } + return('?'); + } + if (*++cp == ':') { + if (argv[optind][sp + 1] != '\0') + optarg = &argv[optind++][sp + 1]; + else if (++optind >= argc) { + ERR(": option requires an argument -- ", c); + sp = 1; + return('?'); + } + else + optarg = argv[optind++]; + sp = 1; + } + else { + if (argv[optind][++sp] == '\0') { + sp = 1; + optind++; + } + optarg = NULL; + } + return(c); +} + +#endif /* __GNUC__ */ \ No newline at end of file diff --git a/libs/tgl/src/wingetopt.h b/libs/tgl/src/wingetopt.h new file mode 100644 index 0000000000..4372c66011 --- /dev/null +++ b/libs/tgl/src/wingetopt.h @@ -0,0 +1,32 @@ +/* +POSIX getopt for Windows + +AT&T Public License + +Code given out at the 1985 UNIFORUM conference in Dallas. +*/ + +#ifdef __GNUC__ +#include +#endif +#ifndef __GNUC__ + +#ifndef _WINGETOPT_H_ +#define _WINGETOPT_H_ + +#ifdef __cplusplus +extern "C" { +#endif + + extern int opterr; + extern int optind; + extern int optopt; + extern char *optarg; + extern int getopt(int argc, char **argv, char *opts); + +#ifdef __cplusplus +} +#endif + +#endif /* _GETOPT_H_ */ +#endif /* __GNUC__ */ \ No newline at end of file -- cgit v1.2.3